BatShell

2019-06-09-BatShell

Windows bat 脚本

批处理文件,在DOS和Windows(任意)系统中,.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。
BATSHELL参考

语法:

  • echo: 显示信息,或将命令回显打开或关上

    • echo [on | off]
    • echo [message]
  • @: 表示不显示@后面的命令

    • 标签必须单独一行,并且以冒号打头。
    • 如果命令扩展被启用,GOTO 会如下改变
  • goto: goto label, 无条件跳转

    • label 指定批处理程序中用作标签的文字字符串
    1
    2
    goto end
    :end
  • rem: 在批处理文件或 CONFIG.SYS 里加上注解或说明

    • rem [comment]
    • :: [commnet]
  • title: 设置窗口标题

    • title [string]
  • pause:暂停批处理程序,并显示以下消息:

    • 请按任意键继续. . .
  • call:call [drive:][path]filename [batch-parameters]

    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    call :an Hello 世界!
    :an
    echo %1
    echo %2
    pause>null

    输出为: Hello 世界!
  • if:执行批处理程序中的条件处理

    1
    2
    3
    IF [NOT] ERRORLEVEL number command  
    IF [NOT] string1==string2 command
    IF [NOT] EXIST filename command
  • for:对一组文件中的每一个文件执行某个特定命令

    1
    for %variable in (set) DO command [command-parameters]
    • 在批处理程序中使用 for 命令时, 指定变量请使用 %%variable而不要用 %variable, 变量名称是区分大小写的,所以 %i不同于 %I
  • set:显示、设置或删除 cmd.exe 环境变量

    1
    2
    3
    4
    5
    set [variable=[string]]  
    variable # 指定环境变量名
    string # 指定要指派给变量的一系列字符串
    SET /A expression
    SET /P variable=[promptString]
  • del:删除一个或数个文件

    1
    DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

参数:

  • 批脚本里的 %* 指出所有的参数(如 %1 %2 %3 %4 %5 ...)

  • 批参数(%n)的替代已被增强:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    %~1         - 删除引号("),扩展 %1
    %~f1 - 将 %1 扩展到一个完全合格的路径名
    %~d1 - 仅将 %1 扩展到一个驱动器号
    %~p1 - 仅将 %1 扩展到一个路径
    %~n1 - 仅将 %1 扩展到一个文件名
    %~x1 - 仅将 %1 扩展到一个文件扩展名
    %~s1 - 扩展的路径只含有短名
    %~a1 - 将 %1 扩展到文件属性
    %~t1 - 将 %1 扩展到文件的日期/时间
    %~z1 - 将 %1 扩展到文件的大小
    %~$PATH:1 - 查找列在 PATH 环境变量的目录,并将 %1
    扩展到找到的第一个完全合格的名称。如果
    环境变量名未被定义,或者没有找到文件,
    此修改符会扩展到空字符串
  • 可以组合修改符来取得多重结果(d-Drive,p-Path):

    1
    2
    3
    4
    5
    %~dp0       - 获取当前路径
    %~dp1 - 只将 %1 扩展到驱动器号和路径
    %~nx1 - 只将 %1 扩展到文件名和扩展名
    %~dp$PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1,并扩展到找到的第一个文件的驱动器号和路径。
    %~ftza1 - 将 %1 扩展到类似 DIR 的输出行
  • %源字符串:~起始值,截取长度% (起始值从0开始;截取长度是可选的,如果省略逗号和截取长度,将会从起始值截取到结尾;


BatShell
https://anyu967.github.io/posts/8ef1acd.html
作者
anyu967
发布于
2019年6月9日
许可协议