常见命令:
1、echo&@
1)加@ 不显示命令行只显示结果 如@echo test 结果:test
echo test 结果 path>echo test
test
@echo off
2、注释 Rem 或 ::
3、Pause:暂停&显示:Press any key to continue . . .
4、call:调用其他批处理脚本
5、choice(使用时加/c:参数)
example:
@echo off :begin choice /c:1234 /m:"please select" if %errorlevel%==4 goto end if %errorlevel%==3 goto three if %errorlevel%==2 goto two if %errorlevel%==1 goto one :one pause>nul goto begin :two echo 222 pause>nul goto begin :three echo 333 pause>nul goto begin :end echo I want to quit pause>nul
6、if
if exist screenshot.bat edit screenshot.bat
7、for
for /参数 %%变量 in (set) do 命令
Ps:在批处理中,变量是加%%;在命令行是%:且区分大小写
FOR分四种参数 D L R F
1)参数/d
/d 参数是指定仅对目录而不是文件执行的for命令
2)参数/R
%r +path指包含它之下的整个目录树(相当于DOS命令tree里的范围)中的所有目录
%r.是指当前路径下的目录树
rem 显示d:盘中所有文件名为file1和file2的列表
for /r d: %%h in (file1,file2) do if exist %%h echo %%h
3)参数/L
for /L %%变量 in (起始值,每次增值,结束时的比较值) do 命令
参数/f文件名-集 for /f “选项” %变量 in ( “字符串”-集 ) do 命令 ‘命令'-集
Exampl:for /f "skip=1 tokens=1" %%c in (D:aa.txt) do @echo %%c
eol=c - 指一个行注释字符的结尾(就一个) skip=n - 指在文件开始时忽略的行数。 delims=xxx - 指分隔符集。这个替换了空格和跳格键的 默认分隔符集。 tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
usebackq - 指定新语法已在下类情况中使用:
其他:goto start
变量使用:
1、程序里设置变量
Example:set var=hello world!
2、读入的方法设置变量
Example:set /p var=请输入一个变量:
3、系统参数:%0,%1,%2,%3,%4,%5,%6,%7,%8,%9,%*
%0 指批处理本身。
%1 指批处理文件名后加的以空格分隔的字符串。
%2~%9类推
比如说
D盘根目录下有aa.txt,bb.txt,cc.txt三个文本和一个名1.bat的批处理,批处理内容是
@echo off
start %1
start %3
打开CMD定位到D盘
D:>1 aa.txt bb.txt cc.txt
对应: %0 %1 %2 %3
就会打开aa.txt(它是第一个参数即%1)和cc.txt(它是第三个参数即%3),而不会打开bb.txt,因为批处理的命令里没有start %2(bb.txt排第二所以是第二个参数)
三、组合命令
1、&
第一条命令 & 第二条命令 [& 第三条命令...] 用这种方法可以同时执行多条命令,而不管命令是否执行成功
2.&& Usage:第一条命令 && 第二条命令 [&& 第三条命令...] 用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令;
3.|| Usage:第一条命令 || 第二条命令 [|| 第三条命令...] 用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;
四、管道命令的使用
1.| 命令 Usage:第一条命令 | 第二条命令 [| 第三条命令...] 将第一条命令的结果作为第二条命令的参数来使用,记得在unix中这种方式很常见。
2.>、>>输出重定向命令 将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内容后写入指定文件,而>>只会追加内容到指定文件中,而不会改动其中的内容。
3.< 、>& 、<& < 从文件中而不是从键盘中读入命令输入。 >& 将一个句柄的输出写入到另一个句柄的输入中。 <& 从一个句柄读取输入并将其写入到另一个句柄输出中。 这些并不常用,也就不多做介绍