一种为从命令行输入参数,批处理参数扩展变量(%*, %0 到 %9)
%* 表示命令行输入的所有参数
%0 表示脚本文件名
%1到%9 表示命令行输入的第1到第9个参数
另一种为键盘输入参数,合用set /p完成,以下为示范代码:
@echo off
echo show %1%
set /p ver=请输入版本:
echo 版本:%ver% 打包开始
字符串
set ifo=abcdefghijklmnopqrstuvwxyz0123456789 :: 定义一个字符串常量
echo %ifo% :: 引用变量
:: 截取前5个字符:
echo %ifo:~0,5%
:: 截取最后5个字符:
echo %ifo:~-5%
:: 截取第一个到倒数第6个字符:
echo %ifo:~0,-5%
:: 从第4个字符开始,截取5个字符:
echo %ifo:~3,5%
:: 从倒数第14个字符开始,截取5个字符:
echo %ifo:~-14,5%
set var=我是值 注意,除了set和var之间有空格外,其余地方不能有空格
pause 暂停
exit 退出 exit /b 错误码
echo off关闭回显(但其本身仍然会回显),echo on是打开回显
@用于关闭本命令回显
IF [not] string1 compare-op string2 command1 [else command2] 字符串比较
compare-op取值如下:==,EQU,NEQ,LSS,LEQ,GTR,GEQ
IF [NOT] EXIST filename command1 [else command2] 判断文件或文件夹是否存在
IF [NOt] DEFINED variable command1 [else command2] 判断变量是否存在
注意if语句的多行书写,多行书写要求command1的左括号必须和if在同一行、else必须和command1的右括号同行、command2的左括号必须与else同行、command1和command2都可以有任意多行
& [...] command1 & command2 用来分隔一个命令行中的多个命令。Cmd.exe 运行第一个命令,然后运行第二个命令。
&& [...] command1 && command2 只有在符号 && 前面的命令成功时,才用于运行该符号后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令运行成功时才运行第二个命令。
|| [...] command1 || command2 只有在符号 || 前面的命令失败时,才用于运行符号 || 后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令未能运行成功(接收到大于零的错误代码)时才运行第二个命令。
call ***.bat 调用另外一个bat
%cd% 代表的是执行文件的当前目录,强调bat是在哪里启动的
%~dp0 代表的是bat文件所在的文件目录,强调bat的文件位置