学习目的:
为了更方便的开发工作,比如你想删除所有项目中的build文件,修改整个文件夹下所有文件的格式,或者一个项目中存在多个git路径的module,此时用批处理工具都是很方便的,一切为了更方便。
-
help
起到命令查看的作用 eg: help type(等同“type /?”) >>tmp.txt(表示写到文件中)
-
@
不显示@后面的命令(如:入侵时不想别人看到命令)
-
echo
@echo off
隐藏所有命令
显示信息:
echo "日志"
输如信息到文件,也可应用输如空内容用于创建文件
echo > ad.txt (>:表示覆盖文件,>>:表示追加内容)
-
rem
注释
-
pause
暂停,执行,屏幕会提示“按压任意键继续”
-
call
启动其他批处理,并不停止父批处理程序,子的执行完后能继续执行父程序。
Sample:call test2.bat arg1 arg2 (调用同目录下的 test2.bat,且输入2个参数给他)
-
start
其他所有DOS命令 和 命令行程序
-
exit
退出当前窗口
-
random
随机数(0-~)
-
if
if
语法: if [not] "参数" == "字符串" 待执行的命令
if exist
语法: if [not] exist [路径]文件名 待执行的命令
if errorlevel number
语法: if [not] errorlevel <数字> 待执行的命令
else
if 条件 (成立时执行的命令) else (不成立时执行的命令)
Sample: if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 )
比较运算符:
EQU - 等于 (一般使用“==”) NEQ - 不等于 (没有 “!=”,改用“ if not 1==1 ”的写法) LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于
-
choice
choice 使用此命令可以让用户输入一个字符(用于选择)
Sample: choice /c:dme defrag,mem,end 将显示: defrag,mem,end[D,M,E]? Sample: choice /c:dme defrag,mem,end if errorlevel 3 goto defrag (应先判断数值最高的错误码) if errorlevel 2 goto mem if errotlevel 1 goto end
-
for
先记录常用的内容,多余内容可子性查看网页
for /d %% i in ( * ) do (conmmand处理)
/d:遍历当前目录下所有文件夹
/r:遍历所有文件及文件夹
for /r %%i in (*) do (echo %%i)
for /L %%i in (start ,step,end) do (conmmand处理)
L:表述数字
for /l %%i in (1,2,5) do (echo %%i)
显示:1,3,5
-
goto
跳转到指定的位置执行命令
eg:
:begin (做个标记位)
………………
goto begin
-
文件操作
md:创建文件夹
rd: 删除文件夹
ren: 重命名文件(夹)
move: 移动文件(夹)
-
特殊字符的使用
%~dp0 :代表当前路径
-
变量
set name = 字符串
使用变量需要%name%
set /p name="请输如你的名字:"
/p表示出口提示用于输如内容,变量即为输如的内容
set /a name=2+1
/a 表示数子表达式
-
参数
参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。
%[0-9]
%0 : 表示批处理命令本身
%1-9:表示call 和start启动此批处理输如的参数,
eg: call text.bat test1 test 2: %0=text.bat %1=test1 %2=test2,其他都是空
Sample: call test2.bat "hello" "haha" (执行同目录下的“test2.bat”文件,并输入两个参数) 在“test2.bat”文件里写: echo %1 (打印: "hello") echo %2 (打印: "haha") echo %0 (打印: test2.bat) echo %19 (打印: "hello"9)
暂时只用到这些,后期用到了更复杂的再补充。