首页 > 技术文章 > 批处理

emma-zhu 2018-04-18 08:38 原文

 

常见命令:

1echo&@

1)加@ 不显示命令行只显示结果 如@echo test  结果:test

                echo test 结果 path>echo test

                       test

                                                           @echo off

2、注释 Rem ::

3Pause:暂停&显示:Press any key to continue . . .

4call:调用其他批处理脚本

5choice(使用时加/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

6if

if exist screenshot.bat edit screenshot.bat

7for

for /参数 %%变量 in (set) do 命令

Ps:在批处理中,变量是加%%;在命令行是%:且区分大小写

 FOR分四种参数 D L R F

1)参数/d

/d 参数是指定仅对目录而不是文件执行的for命令

2)参数/R

%r +path指包含它之下的整个目录树(相当于DOS命令tree里的范围)中的所有目录

%r.是指当前路径下的目录树

rem 显示d:盘中所有文件名为file1file2的列表

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、程序里设置变量

Exampleset 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.txtbb.txtcc.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 %2bb.txt排第二所以是第二个参数)

三、组合命令

1、&

第一条命令 & 第二条命令 [& 第三条命令...] 用这种方法可以同时执行多条命令,而不管命令是否执行成功

2.&& Usage:第一条命令 && 第二条命令 [&& 第三条命令...] 用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令;

3.|| Usage:第一条命令 || 第二条命令 [|| 第三条命令...] 用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;

四、管道命令的使用

1.| 命令 Usage:第一条命令 | 第二条命令 [| 第三条命令...] 将第一条命令的结果作为第二条命令的参数来使用,记得在unix中这种方式很常见。

2.>、>>输出重定向命令 将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内容后写入指定文件,而>>只会追加内容到指定文件中,而不会改动其中的内容。

3.< 、>& 、<& < 从文件中而不是从键盘中读入命令输入。 >& 将一个句柄的输出写入到另一个句柄的输入中。 <& 从一个句柄读取输入并将其写入到另一个句柄输出中。 这些并不常用,也就不多做介绍

 

 

 

 

 

 

推荐阅读