文章目录
最近的项目中,有一个编写windows下打包项目工程脚本的任务。由于之前不是很熟悉,在这个过程中遇到了很多困难,查找了很多资料,也收获了很多。下面是windows BAT脚本中常用的知识总结。
1常用基本命令
1.1 @
它的作用是让执行窗口中不显示它后面这一行的命令本身
1.2 echo
它其实是一个开关命令,就是说它只有两种状态:打开和关闭。于是就有了echo on 和echo off两个命令了。直接执行echo命令将显示当前echo命令状态(off或on)执行echo off将关闭回显
1.3 ::
它是注释命令,在批处理脚本中和rem命令等效。
1.4 pause
它的作用,是让当前程序进程暂停一下,并显示一行信息:请按任意键继续. . .。
1.5 :和goto
goto是个跳转命令,: 是一个标签。当程序运行到goto时,将自动跳转到:定义的部分去执行了
如:
……
goto end
……
:end
1.6 %
这个百分号严格来说是算不上命令的,它只是批处理中的参数而已,少了它批处理的功能就减少了51%了
1.7 if
if命令是一个表示判断的命令,根据得出的每一个结果
输入判断
如:
if "%1"=="" goto usage
if not "%1"=="" goto usage
存在判断
如:
if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif
if not exist C:\Progra~1\Tencent\AD\*.gif exit
结果判断
如:
masm %1.asm
if errorlevel 1 pause & edit %1.asm
link %1.obj
“if not errorlevel 1”
和“if errorlevel 0”
的效果是等效的
一般上一条命令的执行结果errorlevel返回的值只有两个,"成功"用0 表示 "失败"用 1 表示,实际上,errorlevel 返回值可以在0~255 之间
全部的比较参数如下:
EQU
- 等于
NEQ
- 不等于
LSS
- 小于
LEQ
- 小于或等于
GTR
- 大于
GEQ
- 大于或等于
1.8 call
call命令用来从一个批处理脚本中调用另一个批处理脚本
脚本调用可以灵活运用,循环运用、重复运用
脚本调用可以使用参数
call脚本带参数情况:
start.bat:
……
CALL 10.BAT 0
……
10.bat:
……
ECHO %IPA%.%1 >HFIND.TMP
……
CALL ipc.bat IPCFind.txt
ipc.bat:
for /f "tokens=1,2,3 delims= " %%i in (%1) do call HACK.bat %%i %%j %%k
把10.bat里的参数%1用0代替。在start.bat中,ipc.bat后面跟了参数ipcfin