Windows Batch Script
大约 2 分钟shellshell
指令选项
Windows使用反斜杠'/'作为选项的标识符,例如:
exit /b 0
指令文档
使用help可能获取指令的帮助文档。
C:\Users\Administrator>help
有关某个命令的详细信息,请键入 HELP 命令名
ASSOC 显示或修改文件扩展名关联。
ATTRIB 显示或更改文件属性。
BREAK 设置或清除扩展式 CTRL+C 检查。
BCDEDIT 设置启动数据库中的属性以控制启动加载。
CACLS 显示或修改文件的访问控制列表(ACL)。
CALL 从另一个批处理程序调用这一个。
CD 显示当前目录的名称或将其更改。
CHCP 显示或设置活动代码页数。
CHDIR 显示当前目录的名称或将其更改。
变量
使用set指令给变量赋值,注意等号前后不能有空格,使用变量时需要用%将其包住。
C:\Users\Administrator>set a=hello world
C:\Users\Administrator>echo %a%
hello world
参数处理
和Linux差不多,把$换成%就是了。
set name=%1
set msg=%2
echo %name% says %msg%
判断
:: 判断参数为空字符串:
if "%arg%" == "" (echo empty)
关闭回显
回显就是你输入什么都会在控制台里输出一遍,这对直接在控制台执行输入指令来说很正常,但对于bat文件就很诡异。例如,有这么一个test.bat文件:
:: @echo off
echo hello
echo world
不关的话效果如下:
E:\programming\tmp>test.bat
E:\programming\tmp>echo hello
hello
E:\programming\tmp>echo world
world
把第一行的注释打开,关闭回显,就很正常:
E:\programming\tmp>test.bat
hello
world
事实上我在Linux下就没听说过要主动在脚本文件里关闭回显这一说,无论如何,Windows就这样了。