在Windows平台上做项目的自动化构建时,会不可避免的用到批处理文件,本文记录一些常用方法。
echo
echo start copy
在控制台输出字符串:start copy
@
在命令行前面加上@
,表示仅执行,而不显示本命令。
@start test.exe
上面语句表示仅执行test.exe
,不显示。
@echo off
Windows在运行批处理时,会依次执行并显示每一条命令,使用@echo off
将关闭显示。同理,@echo on
打开显示。
call
在批处理中要调用另一个批处理文件,必须使用call
,否则后续命令不会执行。
call a.bat
call b.bat
set
自定义变量使用set
命令。例如:
set DEST=%cd%
echo %DEST%\tools // c:\xxx\tools
在批处理中,%cd%
表示本次执行的当前目录,假设是c:\xxx
,则其后路径c:\xxx\tools
在批处理中可以用%DEST%\tools
表示。
xcopy
拷贝文件用xcopy
命令。例如:
// 把tools目录下所有json文件拷贝到c:\xxx目录
xcopy /y /k tools\*.json c:\xxx\
// 把tools目录下的a.json文件拷贝到c:\xxx目录
xcopy /y /k tools\a.json c:\xxx\
传参
可直接传入批处理的10个参数用0-9表示。例如:
a.bat c:\test 100
则在a.bat
中用%1%
和%2%
分别代表c:\test
和100
。%0%
表示批处理文件自身。
注释
如果语句开头是冒号,则后面的整行命令不会被执行。
: xcopy
上面语句中,xcopy不会被执行,因为行开头是冒号。