bat 语法点滴 批处理 Set 命令详解 让你理解set命令

合集下载

bat批处理命令及解释

bat批处理命令及解释

bat批处理命令及解释⼀、批处理概念批处理⽂件:包含DOS命令的可编辑可执⾏⽂件批处理:可以对某⼀对象批量操作的⽂件⼆、批处理命令简介命令1~101 echo 和 @回显命令@ #关闭单⾏回显echo off #从下⼀⾏开始关闭回显@echo off #从本⾏开始关闭回显。

⼀般批处理第⼀⾏都是这个echo on #从下⼀⾏开始打开回显echo #显⽰当前是 echo off 状态还是 echo on 状态echo. #输出⼀个”回车换⾏”,空⽩⾏#(同echo, echo; echo+ echo[ echo] echo/ echo)2 errorlevelecho %errorlevel%每个命令运⾏结束,可以⽤这个命令⾏格式查看返回码默认值为0,⼀般命令执⾏出错会设 errorlevel 为13 dir显⽰⽂件夹内容dir #显⽰当前⽬录中的⽂件和⼦⽬录dir /a #显⽰当前⽬录中的⽂件和⼦⽬录,包括隐藏⽂件和系统⽂件dir c: /a:d #显⽰ C 盘当前⽬录中的⽬录dir c: /a:-d #显⽰ C 盘根⽬录中的⽂件dir c: /b/p #/b只显⽰⽂件名,/p分页显⽰dir *.exe /s #显⽰当前⽬录和⼦⽬录⾥所有的.exe⽂件4 cd切换⽬录cd #进⼊根⽬录cd #显⽰当前⽬录cd /d d:sdk #可以同时更改盘符和⽬录5 md创建⽬录md d:abc #如果 d:a 不存在,将会⾃动创建中级⽬录#如果命令扩展名被停⽤,则需要键⼊ mkdir abc6 rd删除⽬录rd abc #删除当前⽬录⾥的 abc ⼦⽬录,要求为空⽬录rd /s/q d:temp #删除 d:temp ⽂件夹及其⼦⽂件夹和⽂件,/q安静模式7 del删除⽂件del d:test.txt #删除指定⽂件,不能是隐藏、系统、只读⽂件del /q/a/f d:temp*.*删除 d:temp ⽂件夹⾥⾯的所有⽂件,包括隐藏、只读、系统⽂件,不包括⼦⽬录del /q/a/f/s d:temp*.*删除 d:temp 及⼦⽂件夹⾥⾯的所有⽂件,包括隐藏、只读、系统⽂件,不包括⼦⽬录8 ren重命名命令ren d:temp tmp #⽀持对⽂件夹的重命名9 cls清屏10 type显⽰⽂件内容type c:boot.ini #显⽰指定⽂件的内容,程序⽂件⼀般会显⽰乱码type *.txt #显⽰当前⽬录⾥所有.txt⽂件的内容命令11~2011 copy拷贝⽂件copy c:test.txt d:test.bak复制 c:test.txt ⽂件到 d: ,并重命名为 test.bak从屏幕上等待输⼊,按 Ctrl+Z 结束输⼊,输⼊内容存为test.txt⽂件con代表屏幕,prn代表打印机,nul代表空设备copy 1.txt + 2.txt 3.txt合并 1.txt 和 2.txt 的内容,保存为 3.txt ⽂件如果不指定 3.txt ,则保存到 1.txtcopy test.txt +复制⽂件到⾃⼰,实际上是修改了⽂件⽇期12 title设置cmd窗⼝的标题title 新标题 #可以看到cmd窗⼝的标题栏变了13 ver显⽰系统版本14 label 和 vol设置卷标vol #显⽰卷标label #显⽰卷标,同时提⽰输⼊新卷标label c:system #设置C盘的卷标为 system15 pause暂停命令 //常⽤于使命令⾏窗⼝暂停,不⾄于打开bat⽂件后⽴即结束16 rem 和 ::注释命令注释⾏不执⾏操作17 date 和 time⽇期和时间date #显⽰当前⽇期,并提⽰输⼊新⽇期,按"回车"略过输⼊date/t #只显⽰当前⽇期,不提⽰输⼊新⽇期time #显⽰当前时间,并提⽰输⼊新时间,按"回车"略过输⼊time/t #只显⽰当前时间,不提⽰输⼊新时间18 goto 和 :跳转命令:label #⾏⾸为:表⽰该⾏是标签⾏,标签⾏不执⾏操作goto label #跳转到指定的标签那⼀⾏19 find (外部命令)查找命令find "abc" c:test.txt在 c:test.txt ⽂件⾥查找含 abc 字符串的⾏如果找不到,将设 errorlevel 返回码为1find /i “abc” c:test.txt查找含 abc 的⾏,忽略⼤⼩写find /c "abc" c:test.txt显⽰含 abc 的⾏的⾏数20 more (外部命令)逐屏显⽰more c:test.txt #逐屏显⽰ c:test.txt 的⽂件内容命令21~3021 tree显⽰⽬录结构tree d: #显⽰D盘的⽂件⽬录结构22 &顺序执⾏多条命令,⽽不管命令是否执⾏成功23 &&顺序执⾏多条命令,当碰到执⾏出错的命令后将不执⾏后⾯的命令find "ok" c:test.txt && echo 成功如果找到了"ok"字样,就显⽰"成功",找不到就不显⽰24 ||顺序执⾏多条命令,当碰到执⾏正确的命令后将不执⾏后⾯的命令find "ok" c:test.txt || echo 不成功如果找不到"ok"字样,就显⽰"不成功",找到了就不显⽰25 |管道命令dir *.* /s/a | find /c ".exe"管道命令表⽰先执⾏ dir 命令,对其输出的结果执⾏后⾯的 find 命令该命令⾏结果:输出当前⽂件夹及所有⼦⽂件夹⾥的.exe⽂件的个数type c:test.txt|more这个和 more c:test.txt 的效果是⼀样的26 > 和 >>> 清除⽂件中原有的内容后再写⼊>> 追加内容到⽂件末尾,⽽不会清除原有的内容主要将本来显⽰在屏幕上的内容输出到指定⽂件中指定⽂件如果不存在,则⾃动⽣成该⽂件type c:test.txt >prn屏幕上不显⽰⽂件内容,转向输出到打印机echo hello world>con在屏幕上显⽰hello world,实际上所有输出都是默认 >con 的copy c:test.txt f: >nul拷贝⽂件,并且不显⽰"⽂件复制成功"的提⽰信息,但如果f盘不存在,还是会显⽰出错信息copy c:test.txt f: >nul 2>nul不显⽰”⽂件复制成功”的提⽰信息,并且f盘不存在的话,也不显⽰错误提⽰信息echo ^^W ^> ^W>c:test.txt⽣成的⽂件内容为 ^W > W^ 和 > 是控制命令,要把它们输出到⽂件,必须在前⾯加个 ^ 符号27 <从⽂件中获得输⼊信息,⽽不是从屏幕上⼀般⽤于 date time label 等需要等待输⼊的命令@echo offecho 2005-05-01>temp.txtdate <temp.txtdel temp.txt这样就可以不等待输⼊直接修改当前⽇期28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*命令⾏传递给批处理的参数 //上⼀个命令的结果作为参数%0 批处理⽂件本⾝%1 第⼀个参数%9 第九个参数%* 从第⼀个参数开始的所有参数批参数(%n)的替代已被增强。

批处理Set命令详解让你理解set命令

批处理Set命令详解让你理解set命令

批处理Set命令详解让你理解set命令set,E⽂翻译过来就是“设置”的意思,相当于数学⾥的“令”。

如:set X=5,就是令X=5的意思。

语法形式:SET [variable=[string]]SET /P variable=[promptString]SET /A expression⼀、SET [variable=[string]]⽰例1:@echo offsetpause显⽰所有的变量的值⽰例2:@echo offset var=我是值echo %var%pause请看 set var=我是值 ,这就是BAT直接在批处理中设置变量的⽅法!set 是命令 var是变量名 =号右边的"我是值"是变量的值在批处理中我们要引⽤这个变量就把var变量名⽤两个%(百分号)扩起来,如%var%⼆、SET /P variable=[promptString]有时候我们需要提供⼀个交互界⾯,让⽤户⾃⼰输⼊变量的值,然后我们在来根据这个值来做相应操作,现在我就来说说这SET 的这种语法,只需要加⼀个"/P"参数就可以了!实例1:@echo offset /p var=请输⼊你的名字:echo 您的名字是:%var%pauseset /p 是命令语法 var是变量名 =号右边的"请输⼊变量的值: ",这个是提⽰语,不是变量的值了!运⾏后,我们在提⽰语后⾯直接输⼊robin,就会显⽰⼀⾏您” 您的名字是:robin”三、SET /A expression/A 命令⾏开关指定等号右边的字符串为被评估的数字表达式。

该表达式解析很简单并以递减的优先权顺序⽀持下列操作:() - 分组! ~ - - ⼀元运算符* / % - 算数运算符+ - - 算数运算符<< >> - 逻辑移位& - 按位“与”^ - 按位“异”| - 按位“或”= *= /= %= += -= &= ^= |= <<= >>= - 赋值, - 表达式分隔符set的/A参数就是让SET可以⽀持数学符号进⾏加减等⼀些数学运算!现在开始举例⼦介绍这些数学符号的⽤法:看例⼦这⾥的例⼦请直接在CMD下拷贝命令运⾏,不需要保存为BAT!set /a var=1 + 1set /a 语法, var变量名 1 + 1 数学式⼦拷贝运⾏后会直接显⽰⼀个2,或者运⾏完后我们输⼊echo %var%,也是⼆,这就是&nbs p ;。

bat文件set用法

bat文件set用法

bat文件set用法
在批处理文件(.bat)中,set命令用于设置或显示环境变量。

1. 设置环境变量:
使用set命令可以设置一个新的环境变量或者修改已有的环
境变量的值。

例如:
```
set 变量名=值
```
例如设置一个名为MYVAR的环境变量,值为Hello World: ```
set MYVAR=Hello World
```
2. 显示环境变量:
使用set命令可以显示当前所有的环境变量以及它们的值。

例如:
```
set
```
这将显示所有的环境变量和它们的值。

3. 删除环境变量:
使用set命令可以删除一个环境变量。

例如:
```
set 变量名=
```
例如删除一个名为MYVAR的环境变量:
```
set MYVAR=
```
注意:
- 环境变量的名称是区分大小写的。

- 在脚本中的set命令将会在该脚本执行期间设置和修改环境变量。

如果您希望将环境变量设置为持久变量,以便其他脚本和应用程序也可以使用它,您需要在系统设置中设置该变量。

更多关于set命令的用法和选项,请运行以下命令获取帮助:```
set /?
```。

bat 语法点滴 批处理 Set 命令详解 让你理解set命令

bat 语法点滴 批处理 Set 命令详解 让你理解set命令

bat 语法点滴批处理 Set 命令详解让你理解set命令2011年05月06日星期五 15:301.转义符 ^^" = "2.另外,FOR 中的变量已被增强,我们可以使用下列句法来引用变量:%~I - 扩充 %I 为删除外围 " 引号(有就删)%~fI - 扩充 %I 为一个完整的路径%~dI - 仅扩充 %I 为一个驱动器号%~pI - 仅扩充 %I 为一个路径%~nI - 仅扩充 %I 为一个文件名%~xI - 仅扩充 %I 为一个文件扩展名%~sI - 扩充 %I 为完整的短名路径%~aI - 扩充 %I 为文件的属性(ARSH)%~tI - 扩充 %I 为文件的日期时间(修改时间)%~zI - 扩充 %I 为文件的大小(字节计)%~$PATH:I - ◎变量可以是其他的,如:WinDIR、ProgramFiles 等在环境变量 PATH 指定的路径中搜索文件,扩充 %I 为找到的第一个文件的完整路径;若未找到文件,则扩充 %I 为空。

组合扩展参数效果:%~dpI - 仅扩充 %I 为驱动器号和路径%~nxI - 仅扩充 %I 为文件名加扩展名%~fsI - 扩充 %I 为完整的短名路径(同 %~sI)%~dp$PATH:I - 搜索变量 PATH 中的路径,仅扩充 %I 为找到的第一个文件驱动器号和路径。

%~ftzaI - 扩充 %I 为类似 DIR 命令的输出格式以上例子中,%I 和 PATH 可用其他有效的变量替代。

%~ 百分号加波浪线用法是后面必须跟有效的 FOR 变量名。

推荐使用诸如 %I 的大写变量名,这样不仅易读且可避免混淆。

◎当然这是因人而异的。

如果是for中的变量例如%%i 可以写成%%~ni网上看了很多的set命令,但对于 set /a这类参数不是很详细,脚本之家编辑特从网上收集一些实际的例子等,结合在一起,让大家能快速的理解。

set,E文翻译过来就是“设置”的意思,相当于数学里的“令”。

bat批处理命令大全

bat批处理命令大全

bat批处理命令大全.txt21春暖花会开!如果你曾经历过冬天,那么你就会有春色!如果你有着信念,那么春天一定会遥远;如果你正在付出,那么总有一天你会拥有花开满圆。

.bat 批处理命令关键词:批处理 ?? ????????????????????????????????????????一.简单批处理内部命令简介??1.Echo 命令??打开回显或关闭请求回显功能,或显示消息。

如果没有任何参数,echo 命令将显示当前回显设置。

??? 语法??echo [{on│off}] [message]??Sample:@echo off / echo hello world??在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。

??2.@ 命令??表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。

??Sample:@echo off??@echo Now initializing the program,please wait a minite...??@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。

)??3.Goto 命令??指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。

??语法:goto label (label是参数,指定所要转向的批处理程序中的行。

)?? Sample:??if {%1}=={} goto noparms??if {%2}=={} goto noparms(如果这里的if、%1、%2就是表示变量。

)??@Rem check parameters if null show usage??:noparms??echo Usage: monitor.bat ServerIP PortNumber??goto end??? 标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号.goto命令就是根据这个:来寻找下一步跳到到那里。

BAT命令全解

BAT命令全解

BAT命令全解批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。

这些命令统称批处理命令,下面我就来给大家介绍一下批处理的命令。

1、 REMREM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。

例:REM 你现在看到的就是注解,这一句将不会被执行。

在以后的例子中解释的内容都REM 会放在REM后面。

请大家注意。

2、 ECHOECHO 是一个回显命令主要参数有OFF和 ON,一般用ECHO message来显示一个特定的消息。

例:Echo offRem 以上代表关闭回显即不显示所执行的命令Echo 这个就是消息。

Rem 以上代表显示“这就是消息”这列字符执行结果:C:\>ECHO.BAT这个就是消息。

3、 GOTOGOTO 即为跳转的意思。

在批处理中允许以“:XXX”来构建一个标号然后用GOTO :标号直接来执行标号后的命令。

例:LABELREM 上面就是名为LABEL的标号。

DIR C:\DIR D:\GOTO LABELREM 以上程序跳转标号LABEL处继续执行。

4、CALLCALL 命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理。

例:批处理2.BAT内容如下:ECHO 这就是2的内容批处理1.BAT内容如下:ECHO 这是1的内容CALL 2.BATECHO 1和2的内容全部显示完成执行结果如下:C:\>1.BAT这是1的内容这就是2的内容1和2的内容全部显示完成5、PAUSEPAUSE 停止系统命令的执行并显示下面的内容。

例:C:\> PAUSE请按任意键继续 . . .6、 IFIF 条件判断语句,语法格式如下:IF [NOT] ERRORLEVEL number commandIF [NOT] string1==string2 commandIF [NOT] EXIST filename command说明:[NOT] 将返回的结果取反值即“如果没有”的意思。

cmd中set的用法

cmd中set的用法

cmd中set的用法摘要:一、set 命令概述1.set 命令简介2.set 命令的作用二、set 命令的基本用法1.设置环境变量2.显示环境变量3.删除环境变量三、set 命令的高级用法1.设置命令别名2.设置Path 变量3.其他高级用法四、set 命令的注意事项1.变量名和值的要求2.变量作用域3.命令冲突正文:一、set 命令概述set 命令是Windows 命令提示符(cmd)中一个非常实用的命令,主要用于设置和显示环境变量,以及为其他命令设置别名。

通过set 命令,用户可以灵活地控制命令提示符的运行环境,提高工作效率。

二、set 命令的基本用法1.设置环境变量要设置环境变量,可以使用如下格式:```set 变量名=变量值```例如,要将名称为“my_var”的环境变量设置为“my_value”,可以输入:```set my_var=my_value```2.显示环境变量要显示当前所有的环境变量,可以输入:```set```这将显示所有已设置的环境变量及其值。

3.删除环境变量要删除一个环境变量,可以使用如下格式:```set 变量名=```例如,要删除名称为“my_var”的环境变量,可以输入:```set my_var=```三、set 命令的高级用法1.设置命令别名要为某个命令设置别名,可以使用如下格式:```set 别名=命令```例如,要将“dir”命令设置为“my_dir”,可以输入:```set my_dir=dir```然后,在需要使用“dir”命令时,只需输入“my_dir”即可。

2.设置Path 变量要设置Path 变量,以便在执行命令时自动添加相应的路径,可以使用如下格式:```set PATH=%PATH%;新路径```例如,要将“C:my_folder”路径添加到Path 变量中,可以输入:```set PATH=%PATH%;C:my_folder```3.其他高级用法set 命令还可以用于其他高级操作,如设置覆盖文件扩展名、设置批处理中的变量等。

BAT命令详解

BAT命令详解

BAT命令详解BAT常用命令echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。

echo 表示显示此命令后的字符echo off 表示在此语句后所有运行的命令都不显示命令行本身@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。

call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。

pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。

例1:用edit编辑a.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。

批处理文件的内容为: 命令注释:@echo off不显示后续命令行及当前命令行dir c:\*.* >a.txt将c盘文件列表写入a.txtcall c:\ucdos\ucdos.bat调用ucdospause 暂停,等待按键继续rem 准备运行wps 注释:准备运行wpscd ucdos进入ucdos目录wps 运行wps批处理文件的参数批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”。

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。

变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。

例2:C:根目录下有一批处理文件名为f.bat,内容为:@echo offformat %1如果执行C:\>f a:那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a:例3:C:根目录下一批处理文件名为t.bat,内容为:type %1type %2那么运行C:\>t a.txt b.txt%1 : 表示a.txt%2 : 表示b.txt于是上面的命令将顺序地显示a.txt和b.txt文件的内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

bat 语法点滴批处理 Set 命令详解让你理解set命令2011年05月06日星期五 15:301.转义符 ^^" = "2.另外,FOR 中的变量已被增强,我们可以使用下列句法来引用变量:%~I - 扩充 %I 为删除外围 " 引号(有就删)%~fI - 扩充 %I 为一个完整的路径%~dI - 仅扩充 %I 为一个驱动器号%~pI - 仅扩充 %I 为一个路径%~nI - 仅扩充 %I 为一个文件名%~xI - 仅扩充 %I 为一个文件扩展名%~sI - 扩充 %I 为完整的短名路径%~aI - 扩充 %I 为文件的属性(ARSH)%~tI - 扩充 %I 为文件的日期时间(修改时间)%~zI - 扩充 %I 为文件的大小(字节计)%~$PATH:I - ◎变量可以是其他的,如:WinDIR、ProgramFiles 等在环境变量 PATH 指定的路径中搜索文件,扩充 %I 为找到的第一个文件的完整路径;若未找到文件,则扩充 %I 为空。

组合扩展参数效果:%~dpI - 仅扩充 %I 为驱动器号和路径%~nxI - 仅扩充 %I 为文件名加扩展名%~fsI - 扩充 %I 为完整的短名路径(同 %~sI)%~dp$PATH:I - 搜索变量 PATH 中的路径,仅扩充 %I 为找到的第一个文件驱动器号和路径。

%~ftzaI - 扩充 %I 为类似 DIR 命令的输出格式以上例子中,%I 和 PATH 可用其他有效的变量替代。

%~ 百分号加波浪线用法是后面必须跟有效的 FOR 变量名。

推荐使用诸如 %I 的大写变量名,这样不仅易读且可避免混淆。

◎当然这是因人而异的。

如果是for中的变量例如%%i 可以写成%%~ni网上看了很多的set命令,但对于 set /a这类参数不是很详细,脚本之家编辑特从网上收集一些实际的例子等,结合在一起,让大家能快速的理解。

set,E文翻译过来就是“设置”的意思,相当于数学里的“令”。

如:set X=5,就是令X=5的意思。

set的通常用法示例:1、set 显示环境变量:如:在命令行下输入:set 会显示当前所有的系统环境变量set c 会显示所有的以c开头或C开头的变量(也即不区分大小写);set com 会显示所有的以com开头或COM开头的变量(不区分大小写);2、set 设置环境变量,用法示例:set 表达式,如:set str=ok就是将变量str的值设置成字符串“OK”注意:set str=ok>这个在批处理运行过程中会出错,系统会提示:“命令语法不正确。

”原因是,因为变量str 中的值“ok>”的字符">"为一特殊字符,会被系统当成定向符处理,所以会运行出错,那如果确实要设置这样的变量str,值为 "ok>"怎么办呢?解决办法有二:将特殊字符转义,转义方法在该特殊字符前加一个“^”,如:set str=ok^> (这种方法比较少用,因为没有多少应用价值)常见的解决办法,在set后面将整个表达式用引号括起来,如:set "str=>"3、带参数 /a的set 数值计算set的/A参数就是让SET可以支持数学符号进行加减等一些数学运算! 支持的数学运算包含(优先权递减):() - 分组! ~ - - 一元运算符* / % - 算数运算符+ - - 算数运算符<< >> - 逻辑移位& - 按位“与”^ - 按位“异”| - 按位“或”= *= /= %= += -= - 赋值&= ^= |= <<= >>=, - 表达式分隔符用法示例:set /a num=2*10,这样变量num的值将变为:20复制代码代码如下:set /a var=2 - 1 结果是多少呢?如果你看不到结果就echo %var%.....set /a var=2 * 2 乘法运算set /a var=2 / 2 除法运算set /a var=(1+1) + (1+1) 结果等于4 看得懂吧!set /a a=1+1,b=2+1,c=3+1 运行后会显示一个4,但我们用echo %a% %b% %c%后看结果,会发现其他数学运算也有效果!,这就是"斗"号的作用!有时候我们需要直接在原变量进行加减操作就可以用这种语法set /a var+=1 这样的语法对应原始语法就是set /a var = %var% + 1都是一样的结果。

对于"逻辑或取余操作符",我们需要把他们用双引号引起来,看例子复制代码代码如下:set /a var= 1 "&" 1 这样结果就显示出来了,其他逻辑或取余操作符用法set /a var= 1 "+" 1 异运算set /a var= 1 "%" 1 取模运算set /a var= 2 "<<" 2 次方运算set /a var= 4 ">>" 2 这个不太记得数学里的叫法....这些符号也可以用&= ^= |= <<= >>= 这样的简单用法如set /a var"&=" 1 等于set /a var = %var% "&" 1 注意引号4、带参数 /p 的set 等待用户输入windows 2000 和windows 是没有choice这个命令,choice的等待用户输入功能就要通过set /p来实现演示如下:复制代码代码如下:@echo offset /p str=请输入你想输入的字符:echo 你输入的字符串为:%str%pause>nulset /p的特殊应用(set /p=<nul相当于输出字符并不带回车,利用这个性质,可以做出比较漂亮的动画),用法示例:复制代码代码如下:@echo offfor /l %%i in (1 1 70) do (set /p=O<nulfor /l %%a in (1 1 50) do ver>nul)pause>nul注:代码中用到了一句for /l %%a in (1 1 50) do ver>nul,它的目的是利用for循环运行某一命令来达到延时的目的。

5、利用set截取字符保存下面的代码为test.bat运行查看即可。

复制代码代码如下:@echo off&color 1f&rem num=15 nums=30mode con: cols=80 lines=35set "var=1234567890"set "num= "set "nums= "rem 第一屏舍弃cls&echo 第一屏舍弃echo\&echo %num% var=%var%&echo\for /l %%i in (1 1 3) do call :dan %%iecho\for /l %%i in (0 1 1) do call :yi %%iecho\for /l %%i in (0 1 2) do call :_yi %%iecho ~ 波浪号后面的数字:为正数表示舍弃变量的前位;echo , 逗号后面的数字为正数表示取变量的舍弃以后的前几位;echo , 逗号后面为负数表示舍弃变量的后几位echo\&echo\&pause&color 1erem 第二屏取cls&echo 第二屏取echo\&echo %num% var=%var%&echo\for /l %%i in (-1 -1 -3) do call :dan %%iecho\for /l %%i in (-4 -1 -6) do call :er %%iecho\call :_er -8echo ~ 波浪号后面直接跟负数表示取变量的后几位echo , 逗号后面的数字为正数表示取变量的舍弃以后的前几位;echo , 逗号后面为负数表示舍弃变量的后几位echo\&echo\&pause&color 1frem 第三屏替换删除cls&echo 第三屏替换删除set "var=abc:\123\ef:g\123\456"hij"789"klm\"echo\&echo %num%var=%var%echo\call :sanecho = 号左边为要替换掉的字符, 右边为需替换来的字符echo = 号左边要替换掉的字符前面加个*号,代表第一次出现的字符及其前面的所有字符echo\echo ========= 演示完毕 ========= 按任意键退出 ==========pause>nulexit:danset shu=%1if %shu% lss 0 (set aa=取&set ji=最后) else set aa=舍弃&set ji=前if "%shu:~0,1%"=="-" set shu=%shu:~1%set str1=%%var:~%1%%%num%set str2=%aa%var的%ji%%shu%位%nums%call set str3=%%var:~%1%%%num%call echo %%str1:~0,15%% %%str2:~0,30%% %%str3:~0,15%%goto :eof:yiset shu=%1if %shu% lss 0 (set aa=取&set ji=最后) else set aa=舍弃&set ji=前for /l %%i in (1 1 3) do (set str1=%%var:~%1,%%i%%%num%set str2=%aa%var的%ji%%shu%位之后取%%i位%nums%call set str3=%%var:~%1,%%i%%%num%call echo %%str1:~0,15%% %%str2:~0,26%% %%str3:~0,15%%if %%i==3 echo\)goto :eof:_yifor /l %%i in (-1 -1 -3) do (set str1=%%var:~%1,%%i%%%num%set str2=舍弃var的前%1位和%%i位%nums%call set str3=%%var:~%1,%%i%%%num%call echo %%str1:~0,15%% %%str2:~0,28%% %%str3:~0,15%%if %%i==-3 echo\)goto :eof:erset sss=%1set sss=%sss:~1%for /l %%i in (1 1 3) do (set str1=%%var:~%1,%%i%%%num%set str2=从var的倒数%sss%位开始取%%i位%nums%call set str3=%%var:~%1,%%i%%%num%call echo %%str1:~0,15%% %%str2:~0,24%% %%str3:~0,15%%if %%i==3 echo\)goto :eof:_erset sss=%1set sss=%sss:~1%for /l %%i in (-1 -1 -3) do (set str1=%%var:~%1,%%i%%%num%set str2=从var的倒数%sss%位开始并舍弃最后%%i位%nums% call set str3=%%var:~%1,%%i%%%num%call echo %%str1:~0,15%% %%str2:~0,20%% %%str3:~0,15%% if %%i==-3 echo\)goto :eof:sanset str1=%%var:"=%%%num%set str2=删除var中的所有^"号%num%set str3=%var:"=%%nums%call echo %%str1:~0,13%% %%str2:~0,23%% %%str3:~0,30%% set str1=%%var:\=%%%num%set str2=删除var中的所有\号%num%set str3=%var:\=%%nums%call echo %%str1:~0,13%% %%str2:~0,23%% %%str3:~0,30%% set str1=%%var::=%%%num%set str2=删除var中的所有:号%num%set str3=%var::=%%nums%call echo %%str1:~0,13%% %%str2:~0,23%% %%str3:~0,30%% echo\set str1=%%var:"=好%%%num%set str2=替换var中的所有^"号为好字%num%set str3=%var:"=好%%nums%call echo %%str1:~0,12%% %%str2:~0,20%% %%str3:~0,30%% set str1=%%var:\=好%%%num%set str2=替换var中的所有\号为好字%num%set str3=%var:\=好%%nums%call echo %%str1:~0,12%% %%str2:~0,20%% %%str3:~0,30%% set str1=%%var::=好%%%num%set str2=替换var中的所有:号为好字%num%set str3=%var::=好%%nums%call echo %%str1:~0,12%% %%str2:~0,20%% %%str3:~0,30%% echo\set str1=%%var:*"=%%%num%set str3=%var:*"=%%nums%echo 删除var中的第一次出现的^"号及其前面的所有字符call echo %%str1:~0,15%% %%str3:~0,30%%echo.set str1=%%var:*\=%%%num%set str3=%var:*\=%%nums%echo 删除var中的第一次出现的\号及其前面的所有字符call echo %%str1:~0,15%% %%str3:~0,30%%echo.set str1=%%var:*:=%%%num%set str3=%var:*:=%%nums%echo 删除var中的第一次出现的:号及其前面的所有字符call echo %%str1:~0,15%% %%str3:~0,30%%echo\set str1=%%var:*"=ppp%%%num%set str3=%var:*"=ppp%%nums%echo 替换var中的第一次出现的^"号及其前面的所有字符为ppp call echo %%str1:~0,15%% %%str3:~0,30%%echo.set str1=%%var:*\=ppp%%%num%set str3=%var:*\=ppp%%nums%echo 替换var中的第一次出现的\号及其前面的所有字符为ppp call echo %%str1:~0,15%% %%str3:~0,30%%echo.set str1=%%var:*:=ppp%%%num%set str3=%var:*:=ppp%%nums%echo 替换var中的第一次出现的:号及其前面的所有字符为ppp call echo %%str1:~0,15%% %%str3:~0,30%%echo\goto :eof 批处理Set命令详解补充篇一、设置自定义变量复制代码代码如下:@echo offset var=我是值echo %var%pause二、设置自定义变量,并接受用户输入作为值复制代码代码如下:@echo off@echo offset /p var=请输入变量的值:if %var% == 1 echo 您输入了 1 ~_~pause三、SET /A expressionset的/A参数就是让SET可以支持数学符号进行加减等一些数学运算! 支持的数学运算包含(优先权递减):复制代码代码如下:() - 分组! ~ - - 一元运算符* / % - 算数运算符+ - - 算数运算符<< >> - 逻辑移位& - 按位“与”^ - 按位“异”| - 按位“或”= *= /= %= += -= - 赋值&= ^= |= <<= >>=, - 表达式分隔符Batch代码复制代码代码如下:set /a var=2 - 1 结果是多少呢?如果你看不到结果就echo %var%.....set /a var=2 * 2 乘法运算set /a var=2 / 2 除法运算set /a var=(1+1) + (1+1) 结果等于4 看得懂吧!set /a a=1+1,b=2+1,c=3+1 运行后会显示一个4,但我们用echo %a% %b% %c%后看结果,会发现其他数学运算也有效果!,这就是"斗"号的作用!有时候我们需要直接在原变量进行加减操作就可以用这种语法set /a var+=1 这样的语法对应原始语法就是set /a var = %var% + 1都是一样的结果。

相关文档
最新文档