常用命令:
echo 回显命令 即将echo后面的内容显示到控制台上,需要辨别几处区别:
例如对于如下的脚本:
@echo off
echo This is 1line
echo This is 2 line
echo This is last line
@pause
@echo off 表示执行这条命令之后关闭所有命令的回显(包括当前这一条)
echo off 关闭 除本条命令之外的所有命令的回显
::echo off ::表示注释掉echo off,即所有命令均有回显
pause: 表示暂停命令, 即输出 “请按任意键继续...”
rem 表示注释本行内容 rem This is a comment
set 设置变量的值, 例如 set PI = 3.14, 调用变量的值,需要%PI%,例如, echo Pi = %PI%
type命令 显示某个文件中的内容 例如 type a.txt
call 在批处理中调用另外一个批处理命令 例如 call "D:\software\visual studio\VC\vcvarsall.bat"
goto 和 : goto是一个跳转命令,当程序执行到goto语句的时候,会自动跳转到:定义的标签去执行
if not "%1"=="vsvars" goto ENDVSVARS
call "D:\software\visual studio\VC\vcvarsall.bat"
:ENDVSVARS
for循环语句:
基本的for循环语句如下所示,%%i表示引用变量(在cmd窗口中,只需要%i即可),即使在循环体中用不到,也需要写,for, do也不可省略。
for %%i in (A, B, C) do (
echo This is: %%i
)
运行结果:
此外,for循环还有四个参数可循,分别是/d /l /r /f
1. 参数/d 命令格式 for /d %%i in (集合) do command
/d 是指定仅对符合条件的目录执行command命令,例如:for /d %%i in (c:\*.*) do echo %i ,列出C盘下所有的目录
可已将bat脚本放在特定的目录下,for /d %%i in (*) do echo %i , 列出当前目录下所有的目录
2. 参数 /r 命令格式 for /r %%i in (集合) do command 其中,/r后还可以有盘符或者路径,如果不加盘符或者路径,就是已当前脚本所在的路径为准。
/r与/d的区别是,/r可以将目录下的所有文件名进行读取,而/d只能获取到目录名。
例如: for /r d:/ %%i in (file1,file2) do( if exist %%i echo %%i) D盘的所有file1,file2文件
for /r . %%i in (file1,file2) do( if exist %%i echo %%i) 没有盘符或者 . 都代表脚本所在的当前目录
3. 参数 /f ,可以打开集合里的符合匹配条件的文件,能够实现增删查改操作,命令格式如下:
for /f "选项" %%i in (集合) do command
也可以不做选项,例如需要显示文件里面的内容,则按照如下的命令:
for /f %%i in (file集合) do echo %%i 即可显示文件集合里面文件的完整内容
选项可以分为:skip=1 tokens=1,2,3 delims= , 在缺省选项参数的情况下,会已空格作为默认的分割符,然后会在打开的文件中,按照一行一行给字符串分段,分段的分隔符就是delims指定,默认为空格。skip表示文本开始忽略的行数,tokens用于指定依次取第几个分割的字符串段赋给变量以及顺序附加变量。例如,token=1,2,3-5,表示第1,2,3,4,5段分配给变量以及顺序附加变量。tokens=1,2,3* , 3*表示3后所有的字符串段,或者token表示1,2,3,4,5
命令的用法:
for /f "skip=1 tokens=1,2,3 delims= " %%a in (file集合) do command
则此时,每一行的字符串段依次分配给变量 %%a, %%b, %%c
4. 参数/L ,表示使用一组数值范围来控制迭代,命令的格式为,for /L %%i in (start, step, end) do command
---------------------------------------------------分割线--------------------------------------------------
记录:
通过%cd%可获取当前运行的脚本所在的路径, %PATH%在运行脚本中获取系统环境变量中添加的路径。
echo set environment variable
set Application_Dir=%cd%
set Application_Ver=R100
echo Application_Dir=%Application_Dir%
echo Application_Ver=%Application_Ver%
echo P=%PATH%