精华内容
下载资源
问答
  • 在上篇“windows bat 批处理脚本编写指南”博文中,比较系统地介绍了如何编写windows bat 批处理脚本,本文将重点介绍bat脚本中常用命令及部分DOS内外部命令使用方法,基本思路如下: 1)将命令分成bat脚本使用的...

      在上篇“windows bat 批处理脚本编写指南”博文中,比较系统地介绍了如何编写windows bat 批处理脚本,本文将介绍bat脚本中常用命令及部分DOS内外部命令使用方法,基本思路如下:

    • 将命令分成bat脚本使用的常见命令(如:set、echo等)和dos内外部命令(如:dir、copy等)
    • dos内外部命令按功能进行分类,比如:操作目录、文件的,字符串查找的,网络相关的等

    一、DOS命令基本知识

    1、如何查看命令使用说明

    了解dos命令最简单、高效的办法就是查看其使用说明,所有dos命令几乎有统一的查看命令使用说明方法:命令 /?
    比如 dir 查看目录及文件命令,cmd 命令框输入:dir /? 即可查看其使用说明,输出如下:

    E:\download>dir /?
    显示目录中的文件和子目录列表。
    
    DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
      [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
    
      [drive:][path][filename]
                  指定要列出的驱动器、目录和/或文件。
    
    ...
    
    可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
    来替代预先设定的开关。例如,/-W。
    

    2、命令组合

    • cmd1 & cmd2 & cmd3,顺序执行cmd1、cmd2、cmd3,不管前个命令执行是否出错
    • cmd1 && cmd2 && cmd3,顺序执行cmd1、cmd2、cmd3,cmd1执行出错则cmd2不会继续执行
    • cmd1 || cmd2,cmd1执行失败才会执行cmd2
    3、屏蔽命令输出

    比如 copy 成功后会提示 “已复制 1 个文件。”,有时我们需要屏蔽copy成功的消息提示输出怎么办? > NUL

    rem vcopy.bat
    @echo off 
    copy "%0" "%0"2
    copy "%0" "%0"3 > NUL
    
    4、windows常见命令列表

    可以用help命令查看常见命令列表,如下:

    D:\zx_resource>help
    
    ASSOC          显示或修改文件扩展名关联。
    ATTRIB         显示或更改文件属性。
    BREAK          设置或清除扩展式 CTRL+C 检查。
    BCDEDIT        设置启动数据库中的属性以控制启动加载。
    CACLS          显示或修改文件的访问控制列表(ACL)。
    CALL           从另一个批处理程序调用这一个。
    CD             显示当前目录的名称或将其更改。
    CHCP           显示或设置活动代码页数。
    CHDIR          显示当前目录的名称或将其更改。
    CHKDSK         检查磁盘并显示状态报告。
    CHKNTFS        显示或修改启动时间磁盘检查。
    CLS            清除屏幕。
    CMD            打开另一个 Windows 命令解释程序窗口。
    COLOR          设置默认控制台前景和背景颜色。
    COMP           比较两个或两套文件的内容。
    COMPACT        显示或更改 NTFS 分区上文件的压缩。
    CONVERT        将 FAT 卷转换成 NTFS。您不能转换
                   当前驱动器。
    COPY           将至少一个文件复制到另一个位置。
    DATE           显示或设置日期。
    DEL            删除至少一个文件。
    DIR            显示一个目录中的文件和子目录。
    DISKCOMP       比较两个软盘的内容。
    DISKCOPY       将一个软盘的内容复制到另一个软盘。
    DISKPART       显示或配置磁盘分区属性。
    DOSKEY         编辑命令行、调用 Windows 命令并创建宏。
    DRIVERQUERY    显示当前设备驱动程序状态和属性。
    ECHO           显示消息,或将命令回显打开或关上。
    ENDLOCAL       结束批文件中环境更改的本地化。
    ERASE          删除一个或多个文件。
    EXIT           退出 CMD.EXE 程序(命令解释程序)。
    FC             比较两个文件或两个文件集并显示它们之间的不同。
    FIND           在一个或多个文件中搜索一个文本字符串。
    FINDSTR        在多个文件中搜索字符串。
    FOR            为一套文件中的每个文件运行一个指定的命令。
    FORMAT         格式化磁盘,以便跟 Windows 使用。
    FSUTIL         显示或配置文件系统的属性。
    FTYPE          显示或修改用在文件扩展名关联的文件类型。
    GOTO           将 Windows 命令解释程序指向批处理程序
                   中某个带标签的行。
    GPRESULT       显示机器或用户的组策略信息。
    GRAFTABL       启用 Windows 在图形模式显示扩展字符集。
    HELP           提供 Windows 命令的帮助信息。
    ICACLS         显示、修改、备份或还原文件和
     目录的 ACL。
    IF             在批处理程序中执行有条件的处理过程。
    LABEL          创建、更改或删除磁盘的卷标。
    MD             创建一个目录。
    MKDIR          创建一个目录。
    MKLINK         创建符号链接和硬链接
    MODE           配置系统设备。
    MORE           逐屏显示输出。
    MOVE           将一个或多个文件从一个目录移动到另一个目录。
    OPENFILES      显示远程用户为了文件共享而打开的文件。
    PATH           为可执行文件显示或设置搜索路径。
    PAUSE          停止批处理文件的处理并显示信息。
    POPD           还原由 PUSHD 保存的当前目录上一次的值。
    PRINT          打印一个文本文件。
    PROMPT         改变 Windows 命令提示。
    PUSHD          保存当前目录,然后对其进行更改。
    RD             删除目录。
    RECOVER        从损坏的磁盘中恢复可读取的信息。
    REM            记录批处理文件或 CONFIG.SYS 中的注释。
    REN            重新命名文件。
    RENAME         重新命名文件。
    REPLACE        替换文件。
    RMDIR          删除目录。
    ROBOCOPY       复制文件和目录树的高级实用程序
    SET            显示、设置或删除 Windows 环境变量。
    SETLOCAL       开始用批文件改变环境的本地化。
    SC             显示或配置服务(后台处理)。
    SCHTASKS       安排命令和程序在一部计算机上按计划运行。
    SHIFT          调整批处理文件中可替换参数的位置。
    SHUTDOWN       让机器在本地或远程正确关闭。
    SORT           将输入排序。
    START          打开单独视窗运行指定程序或命令。
    SUBST          将驱动器号与路径关联。
    SYSTEMINFO     显示机器的具体的属性和配置。
    TASKLIST       显示包括服务的所有当前运行的任务。
    TASKKILL       终止正在运行的进程或应用程序。
    TIME           显示或设置系统时间。
    TITLE          设置 CMD.EXE 会话的窗口标题。
    TREE           以图形显示启动器或路径的目录结构。
    TYPE           显示文本文件的内容。
    VER            显示 Windows 的版本。
    VERIFY         告诉 Windows 验证文件是否正确写入磁盘。
    VOL            显示磁盘卷标和序列号。
    XCOPY          复制文件和目录树。
    WMIC           在交互命令外壳里显示 WMI 信息。
    

    二、Bat脚本文件中经常使用的命令

    下述命令使用说明及案例,大部分都可以在上篇博文中找到,这儿只是简单列举:

    1. Echo,输出或回显,如:echo Hello World!
    2. cls,清屏
    3. set,获取所有变量,变量设置
    4. Setlocal、Endlocal,设置为local变量,结束局部变量,v=Local Var2由于在endlocal后赋值的变量,其不再是local变量而是全局变量
    @echo off
    setlocal
    set v=Local Variable
    echo v=%v%
    endlocal
    set v=Local Var2
    echo v=%v%
    
    1. For,for 循环
    2. if … else …,条件选择
    3. title、color,设置标题和颜色
    4. Call,调用另外一个bat脚本,demo如下:
    rem vmain.bat
    @echo off 
    call vsub.bat aa bb
    
    rem vsub.bat
    @echo off 
    echo %0 %1 %2
    
    D:\cmdtest\lianxi>vmain aa bb
    vsub.bat aa bb
    
    1. Shift,参数前移,比如:shift,则第二个参数替换第一个参数,依次类推
    rem vshift.bat
    @echo off 
    echo before shift, args: %*, arg1=%1
    shift
    echo after shift, args: %*, arg1=%1
    
    D:\cmdtest\lianxi>vshift aa bb cc
    before shift, args: aa bb cc, arg1=aa
    after shift, args: aa bb cc, arg1=bb
    
    1. choice:从选择列表选择一个项目并返回所选项目的索引
    @echo off & setlocal
    
    rem /c按键列表 /m提示内容 /d默认选择 /t等待秒数 /d 必须和 /t同时出现
    rem 5秒不输入,默认c
    choice  /c abcd /m "请输入" /d c /t 5
    
    rem 用户选择的结果会按项目序号数字(从1开始)返回在errorlevel变量中
    if %errorlevel%==1 echo 你选择了a
    if %errorlevel%==2 echo 你选择了b
    if %errorlevel%==3 echo 你选择了c
    if %errorlevel%==4 echo 你选择了d
    
    1. Rem、::,都是注释
    2. Pause,程序暂停,按任意键继续
    3. GOTO,跳转语句
    4. exit,程序退出,如:exit /b 0

    三、DOS常见内外部命令

    1. 字符串查找相关

    1). find
    使用说明:

    在文件中搜索字符串。
    FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
    
      /V         显示所有未包含指定字符串的行。
      /C         仅显示包含字符串的行数。
      /N         显示行号。
      /I         搜索字符串时忽略大小写。
      /OFF[LINE] 不要跳过具有脱机属性集的文件。
      "string" 指定要搜索的文本字符串。
      [drive:][path]filename
                 指定要搜索的文件。
    如果没有指定路径,FIND 将搜索在提示符处键入
    的文本或者由另一命令产生的文本。
    

    案例:
    vfind_data.txt

    Hello, Marcus!
    hello, marcus!
    Please say hello
    
    
    rem vfind.bat
    @echo off & setlocal
    rem vfind_data.txt中查找包含Hello字符串的行,区分大小写
    find "Hello" vfind_data.txt
    
    rem vfind_data.txt中查找包含Hello字符串的行,不区分大小写
    find /i "hello" vfind_data.txt
    
    rem vfind_data.txt中查找不包含please字符串的行,不区分大小写
    find /v /i "please" vfind_data.txt
    
    rem 字符串作为输入,查找该字符串中是否包含“hello”
    echo Hello, marcus! | find /i "hello"
    

    2). findstr,find命令加强版(除 /C 只显示匹配到的行数,其它都可实现),支持正则表达式
    使用说明:

    FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
            [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
            strings [[drive:][path]filename[ ...]]
    
      /B         在一行的开始配对模式。
      /E         在一行的结尾配对模式。
      /L         按字使用搜索字符串。
      /R         将搜索字符串作为一般表达式使用。
      /S         在当前目录和所有子目录中搜索匹配文件。
      /I         指定搜索不分大小写。
      /X         打印完全匹配的行。
      /V         只打印不包含匹配的行。
      /N         在匹配的每行前打印行数。
      /M         如果文件含有匹配项,只打印其文件名。
      /O         在每个匹配行前打印字符偏移量。
      /P         忽略有不可打印字符的文件。
      /OFF[LINE] 不跳过带有脱机属性集的文件。
      /A:attr    指定有十六进位数字的颜色属性。请见 "color /?"
      /F:file    从指定文件读文件列表 (/ 代表控制台)。
      /C:string  使用指定字符串作为文字搜索字符串。
      /G:file    从指定的文件获得搜索字符串。 (/ 代表控制台)。
      /D:dir     查找以分号为分隔符的目录列表
      strings    要查找的文字。
      [drive:][path]filename
                 指定要查找的文件。
    
    除非参数有 /C 前缀,请使用空格隔开搜索字符串。
    例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello""there"'FINDSTR /C:"hello there" x.y' 文件 x.y  寻找
    "hello there"。
    
    一般表达式的快速参考:
      .        通配符: 任何字符
      *        重复: 以前字符或类出现零或零以上次数
      ^        行位置: 行的开始
      $        行位置: 行的终点
      [class]  字符类: 任何在字符集中的字符
      [^class] 补字符类: 任何不在字符集中的字符
      [x-y]    范围: 在指定范围内的任何字符
      \x       Escape: 元字符 x 的文字用法
      \<xyz    字位置: 字的开始
      xyz\>    字位置: 字的结束
    
    有关 FINDSTR 常见表达法的详细情况,请见联机命令参考。
    

    案例:

    @echo off & setlocal
    rem 查找文件vfind_data.txt中包含Hello字符串的行,区分大小写
    findstr "Hello" vfind_data.txt
    
    rem 查找hello开头的行,不区分大小写;数字比较请排除双引号、空格干扰
    findstr /i "^hello" vfind_data.txt
    
    rem 查找hello结尾的行,不区分大小写;数字比较请排除双引号、空格干扰
    rem 文件最后一行若不是空白行,则最后一行hello$ 匹配不到,字符串查找时hello$也匹配不到
    findstr /i "hello$" vfind_data.txt
    
    echo Hello, marcus! | findstr /i "hello"
    
    rem 找到输出found,没找到输出not found
    echo Hello, marcus! | findstr /i "hello" > nul && (echo found) || (echo not found)
    

    3). sort,排序
    使用说明:

    SORT [/R] [/+n] [/M kilobytes] [/L locale] [/REC recordbytes]
      [[drive1:][path1]filename1] [/T [drive2:][path2]]
      [/O [drive3:][path3]filename3]
      /+n                         指定开始每个比较的字符号码 n。/+3 说明每个
                                  比较应从每行的第三个字符开始。少于 n 个字符
                                  的行排在其他行之前。按默认值,从每行的第一
                                  个字符开始比较。
      /L[OCALE] locale            用指定的区域设置替代系统默认区域设置。
                                  ""C"" 区域设置产生最快的排序顺序并且是当前
                                  的唯一其他选择。排序总是不分大小写的。
      /M[EMORY] kilobytes         指定用于排序的主内存量,单位为 KB。
                                  最小内存量总是 160 KB。如果指定内存大小,
                                  无论主内存的可用量是多少,指定的内存量会
                                  全部用于排序。
    
                                  要取得最佳性能,通常不指定内存大小。按默认
                                  值,如果达到默认最大内存值,排序会一次完成
                                  (非临时文件);否则,排序会分两次完成(没有
                                  完全排序的数据存储在临时文件中);用于排序
                                  和合并的内存量相等。如果输入和输出都是文
                                  件,默认最大内存量为可用主内存的 90%;
                                  否则,为主内存的 45%。
      /REC[ORD_MAXIMUM] characters 指定记录中的最大字符数量
                                  (默认值为 4096,最大值为 65535)。
      /R[EVERSE]                  颠倒排序顺序,即,从 Z 到 A,再从 9 到 0。
      [drive1:][path1]filename1   指定要排序的文件。如果没有指定,则排序标准
                                  输入。指定输入文件比将同一个文件重定向为标
                                  准输入快。
      /T[EMPORARY]
        [drive2:][path2]          指定保留排序工作存储的目录路径,以防主内
                                  存无法容纳数据。默认值是使用系统临时目录。
      /O[UTPUT]
        [drive3:][path3]filename3 指定在哪个文件中储存经过排序的输入。
                                  如果没有指定,数据会被写入标准输出。指定
                                  输出文件比将标准输出重定向到同一个文件快。在这里插入代码片
    

    案例:

    @echo off & setlocal
    rem 默认排序,按a-z排序
    sort vfind_data.txt
    
    rem 倒序
    sort /r vfind_data.txt
    
    rem 按第二个字母排序
    sort /+2 vfind_data.txt
    
    2. 目录操作相关命令

    1)dir,显示目录中的文件和子目录列表
    使用说明:

    显示目录中的文件和子目录列表。
    DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
      [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
      [drive:][path][filename]
                  指定要列出的驱动器、目录和/或文件。
    
      /A          显示具有指定属性的文件。
      属性         D  目录                R  只读文件
                   H  隐藏文件            A  准备存档的文件
                   S  系统文件            I  无内容索引文件
                   L  解析点             -  表示“否”的前缀
      /B          使用空格式(没有标题信息或摘要)。
      /C          在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
                  禁用分隔符显示。
      /D          跟宽式相同,但文件是按栏分类列出的。
      /L          用小写。
      /N          新的长列表格式,其中文件名在最右边。
      /O          用分类顺序列出文件。
      排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)
                   E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
                   G  组目录优先           -  反转顺序的前缀
      /P          在每个信息屏幕后暂停。
      /Q          显示文件所有者。
      /R          显示文件的备用数据流。
      /S          显示指定目录和所有子目录中的文件。
      /T          控制显示或用来分类的时间字符域。
      时间段      C  创建时间
                  A  上次访问时间
                  W  上次写入的时间
      /W          用宽列表格式。
      /X          显示为非 8.3 文件名产生的短名称。格式是 /N 的格式,
                  短名称插在长名称前面。如果没有短名称,在其位置则
                  显示空白。
      /4          用四位数字显示年
    
    可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
    来替代预先设定的开关。例如,/-W。
    

    案例:

    rem vdir.bat
    @echo off & setlocal
    
    rem 列出目录下所有bat文件的文件名
    dir *.bat /b
    
    rem 列出目录下所有bat文件的文件完整路径
    dir *.bat /b/s
    
    rem 列出所有子目录下文件数量、大小
    dir /s d:\download
    
    rem 列出当前目录下隐藏目录、文件
    dir /ah
    

    2)md,mkdir,创建目录
    语法说明:

    MKDIR [drive:]path
    MD [drive:]path
    md a 当前目录下创建a目录,若a目录已存在会报错
    md /a/b/c  相当于创建了a目录,a目录下创建了b目录,b目录下创建了c目录
    

    3)rd,rmdir,删除目录
    语法说明:

    RMDIR [/S] [/Q] [drive:]path
    RD [/S] [/Q] [drive:]path
    
        /S      除目录本身外,还将删除指定目录下的所有子目录和
                文件。用于删除目录树。
    
        /Q      安静模式,带 /S 删除目录树时不要求确认
    ----------------------------------------------
    rd a		a非空不能删除,下面有b/C
    rd a /s		递归删除,Y/N 是否删除提示?
    rd a /s /q	静默递归删除
    

    3)pushd,popd,切换当前目录
    每次使用 pushd 命令时,都存储一个目录供用户使用。目录按顺序储存到一个虚拟堆栈中。如果第一次使用 pushd 命令,该命令所在的目录就会被置于栈底。如果您再次使用该命令,则第二个目录就会被置于第一个目录之上。每次使用 pushd 命令时都将重复该过程。
    可以用 popd 命令将当前目录更改为由 pushd 命令最新存储的目录。如果使用 popd 命令,位于堆栈顶端的目录将从堆栈中删除,当前目录转变为栈顶目录。如果再次使用 popd 命令,则删除堆栈中的下一个目录。

    保存当前目录以供 POPD 命令使用,然后改到指定的目录。
    PUSHD [path | ..]
      path        指定要成为当前目录的目录。
    
    如果命令扩展被启用,除了一般驱动器号和路径,PUSHD命令还接受网络路径。如果指定了网络
    路径,PUSHD 将创建一个指向指定网络资源的临时驱动器号,然后再用刚定义的驱动器号更改当
    前的驱动器和目录。可以从 Z: 往下分配临时驱动器号,使用找到的第一个没有用过的驱动器号。
    ------------------------------------
    更改到 PUSHD 命令存储的目录。
    POPD
    如果命令扩展被启用,从推目录堆栈 POPD 驱动器时,POPD命令会删除 PUSHD 创建的临时驱动
    器号。
    

    案例:

    rem d:\cmdtest\lianxi\vdir.bat
    rem 设置当前目录为脚本所在目录,即d:\cmdtest\lianxi
    pushd %~dp0
    dir
    
    rem 设置当前目录为脚本所在目录下的data目录,即d:\cmdtest\lianxi\data
    pushd "%~dp0data"
    dir
    
    rem 返回到d:\cmdtest\lianxi
    popd
    dir
    
    rem 返回到当前目录
    popd
    dir
    

    4)tree,显示目录结构
    使用说明:

    以图形显示驱动器或路径的文件夹结构。
    TREE [drive:][path] [/F] [/A]
    
       /F   显示每个文件夹中文件的名称。
       /A   使用 ASCII 字符,而不使用扩展字符。
    ---------------------------
    tree	显示当前目录,目录树
    tree /F	显示当前目录,目录树,包括文件列表
    
    3. 文件操作相关命令

    1)>,>> 重定向创建文件
    > 重新生成文件,>> 原文件已存在则添加内容,不然新建文件并写入内容
    案例说明:

    rem 字符串adfsaf输出到echo.txt
    echo adfsaf > echo.txt
    
    rem 目录树输出到tree.txt文件
    tree > tree.txt
    
    rem 创建一个空白文件
    cd .> empty.txt
    

    2)copy,xcopy 文件复制
    copy只能复制文件,xcopy可以复制文件夹和文件

    REM lianxi\data目录复制到 当前目录data下
    xcopy lianxi\data .\data\
    
    rem 复制成功提示信息输出到nul,不在stdout上显示
    xcopy lianxi\data .\data\ > nul
    

    3)del, ERASE 文件删除
    del, ERASE 是SB命令,删除时没有任何提示,除非加/p参数,如:del /p file 才会yes/no确认,因此这两个是危害性很大的命令,需谨慎使用。

    删除一个或数个文件。
    DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
    ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
    
      names         指定一个或多个文件或者目录列表。
                    通配符可用来删除多个文件。
                    如果指定了一个目录,该目录中的所
                    有文件都会被删除。
    
      /P            删除每一个文件之前提示确认。
      /F            强制删除只读文件。
      /S            删除所有子目录中的指定的文件。
      /Q            安静模式。删除全局通配符时,不要求确认
      /A            根据属性选择要删除的文件
      属性          R  只读文件                     S  系统文件
                    H  隐藏文件                     A  存档文件
                    I  无内容索引文件               L  重分析点
    -------------------------------------
    rem 删除file.txt
    del file.txt
    
    rem 删除file.txt,会有yes|no确认
    del /p file.txt
    
    rem 删除所有txt文件
    del *.txt
    

    4)type,more,文件内容查看

    显示文本文件的内容。
    TYPE [drive:][path]filename
    ----------------------------
    type aa.txt
    
    逐屏显示输出。
    MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
    command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
    MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]
    
        [drive:][path]filename  指定要逐屏显示的文件。
        command-name            指定要显示其输出的命令。
    
        /E      启用扩展功能
        /C      显示页面前先清除屏幕
        /P      扩展 FormFeed 字符
        /S      将多个空白行缩成一行
        /Tn     将制表符扩展为 n 个空格(默认值为 8)
    
                开关可以出现在 MORE 环境变量中。
        +n      从第 n 行开始显示第一个文件
    
        files   要显示的文件列表。使用空格分隔列表中的文件。
                如果已启用扩展功能,则在 -- More -- 提示处 接受下列命令:
        P n 显示下 n 行
        S n 跳过下 n 行
        F 显示下个文件
        Q 退出
        = 显示行号
        ? 显示帮助行
        <space> 显示下一页
        <ret> 显示下一行
    -------------------------------
    rem 分屏显示文件内容
    more aa.txt
    
    rem 从100行开始显示
    more +100 aa.txt
    
    rem tree树形目录结果分屏显示
    tree /f | more
    

    5)ren,文件或目录重命名
    ren 文件1 文件2
    ren 目录1 目录2

    6)comp,比较文件内容是否一致
    使用说明:

    比较两个文件或两个文件集的内容。
    COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] [/OFF[LINE]]
    
      data1      指定要比较的第一个文件的位置和名称。
      data2      指定要比较的第二个文件的位置和名称。
      /D         以十进制格式显示差异。
      /A         以 ASCII 字符显示差异。
      /L         显示不同的行数。
      /N=number  只比较每个文件中第一个指定的行数。
      /C         比较文件时 ASCII 字母不区分大小写。
      /OFF[LINE] 不要跳过带有脱机属性集的文件。
    
    要比较文件集,请在 data1 和 data2 参数中使用通配符。
    ---------------------------
    comp file1.txt file2.txt
    

    7)ATTRIB,显示或更改文件属性

    显示或更改文件属性。
    ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
           [drive:][path][filename] [/S [/D] [/L]]
      + 设置属性。
      - 清除属性。
      R 只读文件属性。
      A 存档文件属性。
      S 系统文件属性。
      H 隐藏文件属性。
      I 无内容索引文件属性。
      [drive:][path][filename]
          指定 attrib 要处理的文件。
      /S 处理当前文件夹及其所有子文件夹中的匹配文件。
      /D 也处理文件夹。
      /L 处理符号链接和符号链接目标的属性。
    -------------------------------------------------
    rem 查看当前目录下的文件属性
    attrib
    
    rem 隐藏文件夹data
    attrib +s +h data
    
    rem 取消隐藏文件夹
    attrib -s -h data
    

    8)assoc, ftype 文件关联
    windows文件关联原理,比如readme.doc为例:
    1)先查找.doc对应的文件类型,用assoc .doc 可以实现
    2)再根据上一步得到的文件类型,找该类型对应的可执行文件,用ftype 文件类型可以实现

    rem .doc=Word.Document.8
    assoc .doc
    
    rem Word.Document.8="C:\Program Files\Office2007\OFFICE12\WINWORD.EXE" "%1"
    ftype Word.Document.8
    

    比如*.txt文件默认word打开,我们可以文件关联设置为,.txt=Word.Document.8即可

    rem 先查看.txt对应的文件类型,.txt=txtfile
    assoc .txt
    
    rem .txt对应的文件类型设置为word文档,设置后txt默认用word打开
    assoc .txt=Word.Document.8
    
    rem .txt对应的文件类型重新设置为txtfile,即默认用记事本打开
    assoc .txt=txtfile
    
    5、网络操作相关命令

    1)ipconfig,IP查看
    使用说明:

    用法:
        ipconfig [/allcompartments] [/? | /all |
                                     /renew [adapter] | /release [adapter] |
                                     /renew6 [adapter] | /release6 [adapter] |
                                     /flushdns | /displaydns | /registerdns |
                                     /showclassid adapter |
                                     /setclassid adapter [classid] |
                                     /showclassid6 adapter |
                                     /setclassid6 adapter [classid] ]
    
    其中
        adapter             连接名称 (允许使用通配符 * 和 ?,参见示例)
        选项:
           /?               显示此帮助消息
           /all             显示完整配置信息。
           /release         释放指定适配器的 IPv4 地址。
           /release6        释放指定适配器的 IPv6 地址。
           /renew           更新指定适配器的 IPv4 地址。
           /renew6          更新指定适配器的 IPv6 地址。
           /flushdns        清除 DNS 解析程序缓存。
           /registerdns     刷新所有 DHCP 租约并重新注册 DNS 名称
           /displaydns      显示 DNS 解析程序缓存的内容。
           /showclassid     显示适配器的所有允许的 DHCP 类 ID。
           /setclassid      修改 DHCP 类 ID。
           /showclassid6    显示适配器允许的所有 IPv6 DHCP 类 ID。
           /setclassid6     修改 IPv6 DHCP 类 ID。
    
    默认情况下,仅显示绑定到 TCP/IP 的适配器的 IP 地址、子网掩码和默认网关。
    对于 Release 和 Renew,如果未指定适配器名称,则会释放或更新所有绑定
    到 TCP/IP 的适配器的 IP 地址租约。
    
    对于 Setclassid 和 Setclassid6,如果未指定 ClassId,则会删除 ClassId。
    示例:
        > ipconfig                       ... 显示信息
        > ipconfig /all                  ... 显示详细信息
        > ipconfig /renew                ... 更新所有适配器
        > ipconfig /renew EL*            ... 更新所有名称以 EL 开头的连接
        > ipconfig /release *Con*        ... 释放所有匹配的连接,
                                             例如 "Local Area Connection 1""Local Area Connection 2"
        > ipconfig /allcompartments      ... 显示有关所有分段的信息
        > ipconfig /allcompartments /all ... 显示有关所有分段的详细信息
    --------------------------------------------
    最常用的莫过于:
    ipconfig		查看IP地址
    ipconfig /all	查看IP地址,MAC地址
    

    2)ping,测试IP网络可达性、网络响应速度

    rem baidu是否可访问,网速测试
    ping www.baidu.com
    
    rem 脚本执行等候5秒
    ping /n 5 127.1>nul
    
    6、系统操作相关命令

    1)shutdown,关机、重启

    60秒后自动关机:shutdown -s -t 60
    取消自动关机:shutdown -a
    立刻重启:shutdowm -r -t 0
    60秒后自动休眠:shutdowm -h -t 60
    

    2)explorer:调用资源管理器

    rem 打开浏览器,并访问http://www.baidu.com
    explorer "http://www.baidu.com"
    
    rem 打开文件目录,定位到d:
    explorer d:
    

    3)start:打开文件夹,启动文件

    rem 同explorer d:
    start d:
    
    开启一个cmd命令框
    start cmd
    

    4)ver:显示操作系统版本号

    rem Microsoft Windows [版本 6.1.7601]
    ver
    

    5)hostname:显示计算机名称

    rem PC-20190618KZQB
    hostname
    

    6)net user:用户列表

    更多其它命令,比如:format, fdisk, chkdisk等,大家可以参考https://www.jb51.net/shouce/dos/添加链接描述

    展开全文
  • Windows批处理延时启动命令行

    千次阅读 2020-12-05 08:56:32
    Windows批处理延时启动命令行案例一:案例二: 案例一: @echo off echo %time% // 打印当前时间 timeout /t 60 // 延时60秒 echo %time% // 60秒后 打印当前时间。在这行代码后面就可以加入需要执行的命令行...

    Windows下批处理延时启动命令行

    案例一:

    @echo off
    
    echo %time%		// 打印当前时间
    
    timeout /t 60	// 延时60秒
    
    echo %time%		// 60秒后 打印当前时间。在这行代码后面就可以加入需要执行的命令行。
    
    pause
    

    案例二:

    @echo off
    
    echo %time%  	// 打印当前时间
    
    echo "WebScoket 服务正在启动,请稍后..." 	// 打印提醒字符串。(注意:如需要显示中文的话,需要将批处理文件保存为ANSI编码格式)
    
    timeout /t 60	// 延时60秒,如果要延时70秒,将60改为70 即可
    
    echo %time%		// 打印延时后的时间
    
    D:\phpstudy_pro\Extensions\php\php5.6.9nts\PHP.exe "server.php"		// 需要执行的命令行
    
    展开全文
  • rundll32 printui.dll,PrintUIEntry /k /n\\计算机全名\打印机名称 ...如果需要定时执行,可以使用windows自带的定时任务功能进行配置,具体参见 https://www.cnblogs.com/gcgc/p/11594467.htm..
    rundll32 printui.dll,PrintUIEntry /k /n\\计算机全名\打印机名称

    新建文本,后缀名由txt改为bat,复制以上内容修改替换一下自己电脑的计算机全名以及要调用的打印机名称。

    计算机全名在“此电脑(我的电脑)-右键属性-计算机全名”处查看。

    打印机名称在“控制面板-查看设备和打印机”处查看。

     

    如果需要定时执行,可以使用windows自带的定时任务功能进行配置,具体参见

    https://www.cnblogs.com/gcgc/p/11594467.html

     

    展开全文
  • 关闭命令行回显:@echo off获取批处理所在的目录:@set SRC_ROOT=%~dp0建立标号::here跳转到标号:goto here执行命令而不显示命令的输出:@commandx判断前一个命令的执行结果:@IF "%ERRORLEVEL%"=="...

    关闭命令行回显:

    @echo off

    获取批处理所在的目录:

    @set SRC_ROOT=%~dp0

    建立标号:

    :here

    跳转到标号:

    goto here

    执行命令而不显示命令的输出:

    @commandx

    判断前一个命令的执行结果:

    @IF "%ERRORLEVEL%"=="0" (
    @ECHO.
    ) ELSE (
    @goto fail
    )
    打印空行:
    @echo.

    延时15秒:

    @echo Wscript.Sleep Wscript.Arguments(0) * 1000>Delay.vbs
    Delay.vbs 15
    @del Delay.vbs

    暂停按任意键继续:

    @pause
    

    获取用户输入:

    @SET /P FILE_NAME="请输入文件名: "

    调用其他的批处理:

    @call envsetup.cmd





    展开全文
  • 可以编写调用windows程序的脚本,做windows下的批处理
  • windows bat脚本编写 前言:写这篇文档的目的是为了帮助...1、windows批处理 (cmd/bat) 编程详解 cmd文件和bat文件的区别: 在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建、编辑和查看。两者所用
  • --如果存在test1就打印出来 if exist F:\test1.bat type F:\test1.bat
  • windows bat批处理语法简析 分类: 自己的 编程c++2013-07-21 17:24 113人阅读 评论(0) 收藏 举报 目录(?)[+] 很久没有写过博客了,这一段时间看的东西不多,很乱,但是不写总感觉有一...
  • 本文叫“ 初尝Windows批处理编程”是为了延续上一篇“初尝 Perl”,其实对于博主而言批处理以及批处理编程早就接触过了。 本文包括以下内容 1、什么是批处理 2、常用批处理命令 3、简介批处理编程结构 4、一...
  • Windows BAT批处理脚本教程

    千次阅读 2015-03-18 11:48:09
    第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。 小知识:可以在...
  • windows 批处理

    千次阅读 2013-05-06 10:48:39
    批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行...
  • windows bat批处理基础命令学习教程 一、基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。 2.批处理是一种简单的程序,可以用 ...
  • 文章来源:BAT 批处理脚本 教程 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令...
  • Windows批处理

    2019-09-21 11:21:43
    如果在网上搜索可以找“Windows 批处理 命令”或者“Windows bat” 由于最近的项目用到批处理,所以转载一篇bat 语法 命令的文章,权当备份,省略了若干不关键字句 原文地址在这里: ...如何创建批处理文件?...
  • windows批处理文件的编写

    千次阅读 2013-04-26 21:06:17
    在学习批处理命令的过程中搜索到网上的一个《批处理命令一日一教学》系列,讲得非常浅显易懂,特此mark http://www.bathome.net/thread-2576-1-1.html 创建批处理文件 新建记事本文档,将其后缀.txt改为.bat,再...
  • windows批处理

    千次阅读 2015-09-04 20:33:13
    前面的@表示echooff 这一行也不会回显你可以试着去掉@和整行去掉.@的另一个功能是在执行完批处理文件时自动恢复命令回显。 测试: @echo off ipconfig pause 暂停批处理程序的执行并显示一条消息
  • @echo off %此句话如果去掉,则命令行中会将下面的命令再打印一遍% javac -cp ".;E:\COURSERA\【Coursera】Computer Science Programming with a Purpose\WEEK 9\oop2\stdlib.jar" Huntingtons.java java -...
  • windows批处理命令的编写

    千次阅读 2016-09-09 15:19:48
    SEPARATE 在分开的空间内开始 16 位 Windows 程序 HIGH 在 HIGH 优先级类别开始应用程序 REALTIME 在 REALTIME 优先级类别开始应用程序 WAIT 启动应用程序并等候它结束 parameters 这些为传送到命令/程序的参数 ...
  • windows批处理问题

    2015-07-15 12:25:50
    请问怎样将一个命令的输出赋值给一个变量?比如在cmd终端执行命令“cd”会打印当前目录,但是在bat中如何将cd的执行结果保存给如current_path的变量?
  • windows批处理相关

    千次阅读 2014-05-29 16:53:09
    windows下启动JBoss服务器,需要在命令行中输入run.bat。但是运行后如果你想停止服务器,可能的做法就是直接按Ctrl+C键强行终止服务器,显然这种方式是不友好的。另一种方法就是再开一个cmd窗口,进入Jboss的bin...
  • 无论是批处理文件还是shell都是没有意义的,它们只是一种工具,并且是非常低级难懂的工具。 如果不会,那就保持不会就好了。不要花费太多时间在这些没意义的事情上。 批处理的没意义体现在: 难以表达 随便一门正经...
  • Batch script in windows(批处理脚本)

    千次阅读 2008-12-11 15:35:00
    Full Batch script in windows(批处理)chinanetboy 's documnet 批处理(Batch),也称为批处理脚本,批处理可以灵活又方便的进行电脑或者网络的维护目录1.简单批处理命令简介 echo,rem,pause,call,start,goto,set,if,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,798
精华内容 6,719
关键字:

windows打印批处理