输出第N个bat变量
CMD基础教程
CMD基础教程BAT批处理基础教程DOS批处理⾼级教程精选合编--教程⽬录第⼀章批处理基础第⼀节常⽤批处理内部命令简介1、REM 和::2、ECHO 和@3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode 配置系统设备8、GOTO 和:9、FIND10、START11、assoc 和ftype12、pushd 和popd13、CALL14、shift15、IF16、setlocal 与变量延迟第⼆节常⽤特殊符号1、@ 命令⾏回显屏蔽符2、% 批处理变量引导符3、> 重定向符4、>> 重定向符5、<、>&、<& 重定向符6、| 命令管道符7、^ 转义字符8、& 组合命令9、&& 组合命令10、|| 组合命令11、"" 字符串界定符12、, 逗号13、; 分号14、() 括号15、! 感叹号第⼆章FOR命令详解⼀、参数/d⼆、参数/R三、参数/L四、参数/F第三章FOR命令中的变量⼀、~I - 删除任何引号("),扩展%I⼆、%~fI - 将%I 扩展到⼀个完全合格的路径名三、%~dI - 仅将%I 扩展到⼀个驱动器号四、%~pI - 仅将%I 扩展到⼀个路径五、%~nI - 仅将%I 扩展到⼀个⽂件名六、%~xI - 仅将%I 扩展到⼀个⽂件扩展名七、%~sI - 扩展的路径只含有短名⼋、%~aI - 将%I 扩展到⽂件的⽂件属性九、%~tI - 将%I 扩展到⽂件的⽇期/时间⼗、%~zI - 将%I 扩展到⽂件的⼤⼩⼗⼀、%~$PATH:I第四章批处理中的变量⼀、系统变量⼆、⾃定义变量第五章set命令详解⼀、⽤set命令设置⾃定义变量⼆、⽤set命令进⾏简单计算三、⽤set命令进⾏字符串处理1、字符串替换2、字符串截取第六章if命令讲解第⼀种⽤法:IF [NOT] ERRORLEVEL number command 第⼆种⽤法:IF [NOT] string1==string2 command第三种⽤法:IF [NOT] EXIST filename command第四种⽤法:IF增强的⽤法第七章DOS编程⾼级技巧⼀、界⾯设计⼆、if…else…条件语句三、循环语句四、⼦程序五、⽤ftp命令实现⾃动下载六、⽤7-ZIP实现命令⾏压缩和解压功能七、调⽤VBScript程序⼋、将批处理转化为可执⾏⽂件九、时间延迟⼗、模拟进度条第⼀章批处理基础第⼀节常⽤批处理内部命令简介批处理定义:顾名思义,批处理⽂件是将⼀系列命令按⼀定的顺序集合为⼀个可执⾏的⽂本⽂件,其扩展名为BA T或者CMD。
bat脚本学习教程(珍藏版)
Bat脚本基础教程TYPE显示文本文件的内容。
[drive:][path]filena meSETLOC AL开始批处理文件中环境改动的本地化操作。
在执行SETLOC A L之后所做的环境改动只限于批处理文件。
要还原原先的设置,必须执行ENDLOC A L。
达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 S ETLOC A L命令,都会有一个隐含的ENDLOC AL被执行。
SETLOC AL如果命令扩展名被启用,SETLOC A L会如下改变:SETLOC A L批命令现在可以接受可选参数:E NABLE EXTEN SIONS / DISABL EEXTE NSION S启动或停用命令处理器扩展名。
详细信息,请参阅CMD /?。
E NABLE DELAY EDEXP ANSIO N / DISABL EDELA YEDEX PANSI ON启动或停用延缓环境变量扩展名。
详细信息,请参阅SET /? 。
无论在SETLOC A L命令之前它们的设置是什么,这些修改会一直保留到匹配的ENDLOC A L命令。
如果有一个参数,SETLOC A L命令将设置 E RRORL EVEL的值。
如果有两个有效参数中的一个,该值则为零。
用下列技巧,您可以在批脚本中使用这个来决定扩展名是否可用:VERIFY OTHER2>nulSETLOC AL ENABLE EXTEN SIONSIF ERRORL EVEL1 echo Unable to enable extens ions这个方法之所以有效,是因为在CMD.EXE 的旧版本上,S ETLOC A L不设置ERRORL EVEL值。
具有不正确参数的VERIFY命令将ERRORL EVEL值初始化成非零值。
bat echo 用法
bat echo 用法一、概述bat echo是一种常用的批处理命令,用于在命令行中输出文本信息。
通过使用bat echo,可以在命令行中输出各种信息,如命令执行结果、提示信息等,方便调试和排查问题。
二、用法1. 语法:echo [选项] [参数]2. 选项:* -n:输出文本时不显示换行符* -e:启用转义字符输出3. 参数:需要输出的文本内容具体用法如下:* 输出单个文本:echo "需要输出的文本"* 输出多行文本:echo "第一行文本" "第二行文本" "第三行文本"* 输出变量值:set 变量名=需要输出的值 && echo %变量名%* 输出多个变量值:set 变量名1=需要输出的值1 & set 变量名2=需要输出的值2 && echo %变量名1% %变量名2%* 输出当前目录下的文件列表:dir /s > nul && for %%i in (.) do echo %%i\nul三、示例1. 输出当前时间:echo %date% %time%2. 输出错误提示信息:echo 执行失败,请检查参数是否正确3. 输出成功提示信息:echo 操作已成功完成4. 输出一个变量的值:set name=张三 && echo Your nameis %name%5. 输出多个变量的值:set age=20 & set gender=Male && echo Your age is %age%, and your gender is %gender%6. 输出当前目录下的文件列表:echo 当前目录下的文件列表:&& for %%i in (.) do echo %%i\nul\nul四、注意事项1. bat echo只能输出文本信息,不能执行命令或脚本。
bat文件百度百科
bat文件bat是dos下的批处理文件。
批处理文件是无格式的文本文件,它包含一条或多条命令。
它的文件扩展名为 .bat 或 .cmd。
在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。
使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。
目录在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。
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 noparmsif {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。
)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。
最好有一些说明这样你别人看起来才会理解你的意图啊。
bat命令大全
在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS
中也可以用分号 ; 代替REM命令,但在批处理文件中则不能替代)。
语法
REM [string]
参数
string
指定要屏蔽的命令或要包含的注解。
=======================
cd ucdos 进入ucdos目录
wps 运行wps
批处理文件的参数
批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"%"。
%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其 它参数字符串用%1到%9顺序表示。
-------------------------
ECHO
当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。
在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。
使用ECHO命令可关闭此功能。
语法
ECHO [ON|OFF]
以下摘录MS-DOS 6.22 帮助文档中关于"批处理命令"的文字,当然,其中有些概念和定义已经有些落后了。
批处理命令
批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件,扩展名为.BAT。当在命令提示符下敲入批处理程序的名称时,MS-DOS成组执行此 批处理程序中的命令。
首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符:
Windows批处理(bat)语法大全
Windows批处理(bat)语法⼤全%~dp0[获取当前路径]%~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,⽬录cd %~dp0 :进⼊批处理所在⽬录cd %~dp0bin\ :进⼊批处理所在⽬录的bin⽬录⽰例这个⽰例在win10 x64测试正常::作⽤:以管理员⾝份安装Apached:cd %~dp0binhttpd.exe -k install -n “Apache24”运⾏结果以管理员⾝份运⾏ ⽰例.bat ,执⾏结果如下:C:\Windows\system32>d:D:>cd D:\Server\Apache24\binD:\Server\Apache24\bin>httpd.exe -k install -n “Apache24”我的常⽤命令%cd%[执⾏的路径]当前执⾏的路径,并⾮⽬标⽂件的路径taskkill /f /im notepad.exe [终⽌进程]taskkill /?打开帮助cmd窗⼝中⽂乱码在CMD窗⼝右键/默认值,打开属性选择 “默认代码页为简体中⽂GBK”,获取命令帮助 xxx /?遇到记不清楚的命令,但记得名字,就可以键⼊ 命令名 空格 /?就会有详细的该命令的帮助了,⽐如:ping /? cd /?查看内置命令的帮助信息ver /?cmd /?set /?rem /?if /?echo /?goto /?for /?shift /?call /?其他常⽤的命令type /?find /?findstr /?copy /?#⼀、基础语法1.批处理⽂件是⼀个“.bat”结尾的⽂本⽂件,这个⽂件的每⼀⾏都是⼀条DOS命令。
可以使⽤任何⽂本⽂件编辑⼯具创建和修改。
2.批处理是⼀种简单的程序,可以⽤ if 和 goto 来控制流程,也可以使⽤ for 循环。
3.批处理的编程能⼒远不如C语⾔等编程语⾔,也⼗分不规范。
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.txt call c:\ucdos\ucdos.bat 调⽤ucdos echo 你好 显⽰"你好" pause 暂停,等待按键继续 rem 准备运⾏wps 注释:准备运⾏wps cd 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,内容为:@echo offtype %1type %2那么运⾏C:\>t a.txt b.txt%1 : 表⽰a.txt%2 : 表⽰b.txt于是上⾯的命令将顺序地显⽰a.txt和b.txt⽂件的内容。
shift命令
shift命令shift命令用于更改批处理文件处理参数的方式。
命令格式:shift [/n]参数说明:/n是设置批处理从第n个参数开始移位,n的值在0-8之间。
来做个实例:在E盘根目录下创建b.bat,内容如图:然后分别创建1/2/3.txt,内容为:进入1/2/3.txt中---honker bar然后命令行窗口切换到e盘根目录,输入b.bat 1.txt 2.txt 3.txt回车执行,结果如图这里的符号%0-%9用于批处理从命令行获得的参数,依次代表命令行的相应参数。
b.bat 1.txt 2.txt 3.txt执行时,首先将%0的值作为b.bat,然后%1为1.txt,%2为2.txt,%3为3.txt。
批处理会首先判断第一个参数是否为空,为空就表示没有提供可执行参数,就直接结束了。
当参数不为空时,则显示相应文件的内容。
所以指定到shift命令式,就自动将%1的值赋给%0,%2赋给1%,%3赋给%2,依次类推。
用法形式:shift /n n介于0到8之间shift就相当于一个搬运工,它只能在紧邻的位置间搬运,比如a,b,c三个位置,它一次只能把c移到b 上,但是不能“搬”一次就把c移到a上。
%1是传递的参数,%1是第一个参数,%2是第二个参数,以此类推,%0就是传递参数的命令本身例1:在命令提示符中输入,1.bat 12 34 ,12就是第一个参数,34就是第二个参数 %0就是1.bat例2:在批处理文件中 call :sub 12 34, 12就是第一个参数,34就是第二个参数 %0就是:subshift,shift/0,shift/1这三种形式都是把%2位置上的值搬到%1上,覆盖原来在%1上的值,此时%2成为未定义变量下面的例子保存为1.bat结合例1试验一下,结果显示34 no,表示第一参数12被覆盖为第二个参数34,第二的参数%2没有定义。
@echo offshiftecho %1if defined "%2" (echo yes) else (echo no) pauseshift /2 就是把%3上的值搬到%2上,覆盖原来%2上的值,此时%3成为未定义变量,以此类推。
批处理BAT脚本中set命令的使用详解(批处理之家Batcher)
批处理BAT脚本中set命令的使⽤详解(批处理之家Batcher)⽬录⼀、使⽤ set 命令进⾏赋值1、等号两边不要有空格2、变量值包含特殊字符需⽤双引号3、避免使⽤系统环境变量同名的⾃定义变量4、语法可⾏但不推荐使⽤⼆、使⽤ set /p 命令读取输⼊三、使⽤ set /a 命令进⾏数学运算(1)四、使⽤ set /a 命令进⾏数学运算(2)五、使⽤ set 命令进⾏字符串截取六、使⽤ set 命令进⾏字符串替换七、set命令知识点(1)把命令结果赋值给变量⼋、set命令知识点(2)显⽰以某字符开头的变量⼀、使⽤ set 命令进⾏赋值SET [variable=[string]]1、等号两边不要有空格正确写法C:\>set str=ScriptHomeC:\>echo %str%ScriptHome错误写法C:\>set str = ScriptHomeC:\>echo %str%%str%2、变量值包含特殊字符需⽤双引号正确写法C:\>set "str=Bat&Home"C:\>echo "%str%""Bat&Home"错误写法C:\>set str=Bat&Home'Home' 不是内部或外部命令,也不是可运⾏的程序或批处理⽂件。
C:\>echo "%str%""Bat"变量值设置为空可以清空变量值,实现变量初始化。
3、避免使⽤系统环境变量同名的⾃定义变量例如:path , date , errorlevel 等4、语法可⾏但不推荐使⽤使⽤连等把多个变量赋值成数字set /a x=y=100逗号分隔把多个变量赋值成数字set /a x=1,y=2上⾯是dos界⾯下的写法,下⾯是批处理中的写法,主意是变量⽰例1:显⽰所有的变量的值@echo offsetpause⽰例2:@echo offset var=我是值echo %var%pause请看 set var=我是值 ,这就是BAT直接在批处理中设置变量的⽅法!set 是命令 var是变量名 =号右边的"我是值"是变量的值在批处理中我们要引⽤这个变量就把var变量名⽤两个%(百分号)扩起来,如%var%⼆、使⽤ set /p 命令读取输⼊交互获取⽤户输⼊@echo offset /p input=请输⼊⼀个字符串:echo,%input%pause读取⽂件的第⼀⾏内容C:\>echo BatHome>1.txtC:\>set /p input=<"1.txt"C:\>echo %input%BatHome输出字符串之后不产⽣换⾏@echo offfor %%i in (bat home) do (echo,%%i)pause输出bathome请按任意键继续. . .@echo offfor %%i in (bat home) do (set /p =%%i<nul)pause输出bathome请按任意键继续. . .批处理光标回退(⾮cls清屏)动画效果演⽰@echo offecho set /p =光标回退(⾮cls清屏)动画效果演⽰:<nulfor /l %%i in (1,1,10) do (set /p =%%i<nulset /p =<nulping -n 2 127.1 >nul)echo,pause三、使⽤ set /a 命令进⾏数学运算(1)等号右侧的变量可以省略百分号C:\>set x=1C:\>set y=2C:\>set /a n=%x%+%y%3C:\>set x=1C:\>set y=2C:\>set /a n=x+y3⼋进制和⼗六进制转换成⼗进制很简单C:\>set /a 01210C:\>set /a 0xA10BAT⽂件⾥⾯进⾏“取余”操作的时候需要使⽤两个百分号@echo offset /a n=3%%2echo %n%pause逻辑运算的特殊字符需要使⽤双引号@echo offset /a "m=1<<10"set /a n=1"<<"10echo %m% %n%pause四、使⽤ set /a 命令进⾏数学运算(2)不⽀持直接计算超⼤数(例如磁盘空间的计算)C:\>set /a n=2147483646+12147483647C:\>set /a n=2147483647+1-2147483648C:\>set /a n=2147483648+1⽆效数字。
bat中echo用法
bat中echo用法一、简介在批处理脚本(bat)中,echo是一个常用的命令,用于输出文本信息。
通过使用echo命令,可以在控制台或脚本中显示文本内容,以便于调试和运行。
本文档将详细介绍echo命令的用法和常见应用。
二、echo命令的基本用法echo命令后面可以跟要输出的文本内容,使用方法如下:* 输出单个文本:echo 文本内容* 输出变量值:echo %变量名%* 输出多行文本:echo (文本内容)例如,以下是一个简单的批处理脚本示例,演示了echo命令的基本用法:@echo offecho 输出文本:这是一个批处理脚本echo %USERNAME% 输出当前用户名echo (多行文本)pause三、echo命令的参数选项除了基本的用法外,echo命令还支持一些参数选项,可以进一步控制输出内容和格式。
以下是一些常用的参数选项:* /B:指定输出为文本形式,而不是将内容添加到命令行输出。
* /A2DRF:指定将输出重定向到文件时,使用ASCII码保存文件。
* /N:在输出中添加行号。
* /Q:指定静默模式,只输出文本而不显示命令提示符。
* /V:启用变量扩展,允许输出变量值。
四、echo命令的常见应用1. 调试和测试:通过使用echo命令,可以在脚本运行前输出调试信息,以便于检查脚本中的语法和逻辑。
2. 显示信息:在批处理脚本中,echo命令可用于显示状态信息、操作结果等。
3. 输出变量值:echo命令可用于输出变量的值,方便查看脚本中的变量值。
4. 重定向输出:通过使用echo命令的参数选项,可以将输出重定向到文件或设备。
5. 延迟输出:使用echo命令的延迟选项(例如/t),可以在特定时间后输出文本。
6. 拼接字符串:通过使用echo命令的管道和引号功能,可以拼接多个字符串并输出。
五、示例代码及说明以下是一个示例批处理脚本,演示了echo命令的用法和常见应用:@echo offecho 这是一个示例脚本,用于演示echo命令的用法。
bat 批处理命令详解
//1.txt文件中的内容了
type %2
那么运行C:>b a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
于是上面的批处理命令就变成了
IF [NOT] EXIST filename command
IF [NOT] ERRORLEVEL number command
NOT 指定只有条件为 false 的情况下, Windows XP 才应该执行该命令。
ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为 true。
2004-08-25 00:51 <DIR> Documents and Settings
...........
C:
如果将1.bat内容修改成
echo off
dir
然后再在cmd里输入1.bat,则会显示
C:>echo off //因为运行了echo off,所以没有显示dir命令,直接显示了结果
@echo off
type a.txt
type b.txt
于是上面的命令将顺序地显示a.txt和b.txt文件的内容。
没有编程基础的人可能要问,干什么要弄个参数啊?在后面加个参数多麻烦啊?直接往里面写不就好了啊?!其实这样想有对的方面也有错的方面.还是举个例子说明吧.
第一步还是在c盘根目录下新建一个批处理文件,我们取名仍为a.bat.往里面的内容输入为:
if命令
说得通俗点,if就相当于我们白话里的如果.
bat命令大全
Bat命令大全一、echo和@@#关闭单行回显echo off#从下一行开始关闭回显@echo off#从本行开始关闭回显。
一般批处理第一行都是这个echo on#从下一行开始打开回显echo#显示当前是echo off状态还是echo on状态echo.#输出一个”回车换行”,空白行#(同echo,echo;echo+echo[echo]echo/echo")二、errorlevelecho%errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码默认值为0,一般命令执行出错会设errorlevel为1三、dirdir#显示当前目录中的文件和子目录dir/a#显示当前目录中的文件和子目录,包括隐藏文件和系统文件dir c:/a:d#显示C盘当前目录中的目录dir c:/a:-d#显示C盘根目录中的文件dir c:"/b/p#/b只显示文件名,/p分页显示dir*.exe/s#显示当前目录和子目录里所有的.exe文件四、cdcd"#进入根目录cd#显示当前目录cd/d d:"sdk#可以同时更改盘符和目录五、mdmd d:"a"b"c#如果d:"a不存在,将会自动创建中级目录#如果命令扩展名被停用,则需要键入mkdir"a"b"c。
六、rdrd abc#删除当前目录里的abc子目录,要求为空目录rd/s/q d:"temp#删除d:"temp文件夹及其子文件夹和文件,/q安静模式七、deldel d:"test.txt#删除指定文件,不能是隐藏、系统、只读文件del/q/a/f d:"temp"*.*删除d:"temp文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录del/q/a/f/s d:"temp"*.*删除d:"temp及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录八、renren d:"temp tmp#支持对文件夹的重命名九、cls清屏十、type显示文件内容type c:"boot.ini#显示指定文件的内容,程序文件一般会显示乱码type*.txt#显示当前目录里所有.txt文件的内容十一、11copy拷贝文件copy c:"test.txt d:"test.bak复制c:"test.txt文件到d:",并重命名为test.bakcopy con test.txt从屏幕上等待输入,按Ctrl+Z结束输入,输入内容存为test.txt文件con代表屏幕,prn代表打印机,nul代表空设备copy1.txt+2.txt3.txt合并1.txt和2.txt的内容,保存为3.txt文件如果不指定3.txt,则保存到1.txtcopy test.txt+复制文件到自己,实际上是修改了文件日期十二、title设置cmd窗口的标题title新标题#可以看到cmd窗口的标题栏变了13ver显示系统版本十三、label和vol设置卷标vol#显示卷标label#显示卷标,同时提示输入新卷标label c:system#设置C盘的卷标为system十四、pause暂停命令十五、rem和::注释命令注释行不执行操作十六、date和time日期和时间date#显示当前日期,并提示输入新日期,按""回车""略过输入date/t#只显示当前日期,不提示输入新日期time#显示当前时间,并提示输入新时间,按""回车""略过输入time/t#只显示当前时间,不提示输入新时间十七、goto和:跳转命令:label#行首为:表示该行是标签行,标签行不执行操作goto label#跳转到指定的标签那一行十八、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的行的行数十九、more(外部命令)逐屏显示more c:"test.txt#逐屏显示c:"test.txt的文件内容二十、tree显示目录结构tree d:"#显示D盘的文件目录结构二十一、&顺序执行多条命令,而不管命令是否执行成功二十二、&&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令find""ok""c:"test.txt&&echo成功如果找到了""ok""字样,就显示""成功"",找不到就不显示二十三、||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令find""ok""c:"test.txt||echo不成功如果找不到""ok""字样,就显示""不成功"",找到了就不显示二十四、|管道命令dir*.*/s/a|find/c"".exe""管道命令表示先执行dir命令,对其输出的结果执行后面的find命令该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数type c:"test.txt|more这个和more c:"test.txt的效果是一样的二十五、>和>>输出重定向命令>清除文件中原有的内容后再写入>>追加内容到文件末尾,而不会清除原有的内容主要将本来显示在屏幕上的内容输出到指定文件中指定文件如果不存在,则自动生成该文件type c:"test.txt>prn屏幕上不显示文件内容,转向输出到打印机echo hello world>con在屏幕上显示hello world,实际上所有输出都是默认>con的copy c:"test.txt f:>nul拷贝文件,并且不显示""文件复制成功""的提示信息,但如果f盘不存在,还是会显示出错信息copy c:"test.txt f:>nul2>nul不显示”文件复制成功”的提示信息,并且f盘不存在的话,也不显示错误提示信息echo^^W^>^W>c:"test.txt生成的文件内容为^W>W^和>是控制命令,要把它们输出到文件,必须在前面加个^符号二十六、<从文件中获得输入信息,而不是从屏幕上一般用于date time label等需要等待输入的命令@echo offecho2005-05-01>temp.txtdate<temp.txtdel temp.txt这样就可以不等待输入直接修改当前日期二十七、%0%1%2%3%4%5%6%7%8%9%*命令行传递给批处理的参数%0批处理文件本身%1第一个参数%9第九个参数%*从第一个参数开始的所有参数批参数(%n)的替代已被增强。
BAT批处理脚本教程
BAT批处理脚本教程1.BAT脚本的基本语法一个最简单的BAT脚本如下所示:```echo Hello, World!pause```2.变量和参数在 BAT 脚本中,可以使用变量来存储和操作数据。
变量的定义使用`set` 命令,如下所示:```set variable_name=value```使用变量的值时,需要使用 `%` 符号将变量名括起来,如`%variable_name%`。
脚本可以通过命令行参数接收外部传递进来的值。
使用`%n`表示第n 个参数,其中n是从1开始的整数。
3.控制流语句控制流语句用于根据条件执行不同的命令。
常用的控制流语句有`if` 和 `for`。
`if` 语句可以根据条件执行不同的命令块。
使用语法如下:```if conditionelse````for` 语句用于循环执行命令块。
使用语法如下:``````4.文件和文件夹操作BAT 脚本可以通过命令执行文件和文件夹的操作。
常用的文件和文件夹操作命令有 `copy`、`del`、`mkdir`、`rmdir`等。
`copy` 命令用于复制文件,语法如下:```copy source_file destination_file````del` 命令用于删除文件,语法如下:```del file````mkdir` 命令用于创建文件夹,语法如下:```mkdir folder````rmdir` 命令用于删除文件夹,语法如下:```rmdir folder```5.实例以下是一个简单的BAT脚本示例,用于批量重命名文件夹中的文件:```setlocal enabledelayedexpansionset folder_path=C:\Path\To\Folderset new_name=NewNamefor %%f in (%folder_path%\*) doset "filename=%%~nf"ren "%%f" "!filename:%folder_path%=%new_name%!"echo Done!pause```该脚本首先定义了要操作的文件夹路径和新名称。
bat中echo用法 -回复
bat中echo用法-回复bat中的echo命令是用于在命令行中输出文本或变量的一种方式。
在本篇文章中,我将为您介绍echo命令的用法以及一些常见的应用场景,以帮助您更好地理解并使用这个命令。
第一部分:echo命令的基本用法1. 输出文本:echo命令最简单的用法是输出纯文本。
您可以在bat脚本中使用echo命令来向命令行输出指定的文本内容。
示例如下:echo Hello World这将在命令行中输出"Hello World"。
2. 输出变量:另一个非常有用的功能是使用echo命令输出变量的值。
可以将变量的值与其他文本一起输出。
示例如下:set name=Johnecho My name is name这将输出"My name is John"。
这里,我们定义了一个变量name,并使用echo命令输出了它的值。
3. 输出重定向:echo命令还可以将输出重定向到文件中,方便您将输出结果保存在文本文件中。
示例如下:echo Hello World > output.txt这将把"Hello World"写入到一个名为output.txt的文件中。
如果该文件已存在,原有内容将被覆盖;如果不存在,则会创建该文件并写入内容。
第二部分:echo命令的高级用法1. 输出特殊字符:如果需要输出一些特殊字符,例如换行符或制表符,您可以使用转义字符来完成。
示例如下:echo First Line\nSecond Lineecho Line 1\tLine 2"\n"将被解析为换行符,"\t"将被解析为制表符。
这将在命令行中输出两行内容。
2. 批处理脚本的调试:在bat脚本开发过程中,您可能需要调试脚本中的一些变量或计算表达式。
使用echo命令可以在脚本中打印输出以验证变量、条件语句或循环是否按预期运行。
示例如下:set /a x=10echo The value of x is xif x equ 10 (echo x is equal to 10) else (echo x is not equal to 10)这将输出"x is equal to 10",并验证变量x的值是否等于10。
bat批处理命令大全
从简单学起echo、@、call、pause、rem 是批处理文件最常用的几个命令,我们就从他们开始学起。
echo 表示显示此命令后的字符echo off 表示在此语句后所有运行的命令都不显示命令行本身@ 与echo off相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身。
call 调用另一条批处理文件(如果直接调用别的批处理文件,执行完那条档后将无法执行当前档后续命令)pause 运行此句会暂停,显示Press any key to continue... 等待用户按任意键后继续rem 表示此命令后的字符为解释行,不执行,只是给自己今后查找用的批处理命令大全(一)第一部分:批处理的专用命令批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为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 命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理。
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 noparmsif {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。
)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。
最好有一些说明这样你别人看起来才会理解你的意图啊。
4.Rem 命令注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。
BAT文件常用代码大全
1.Echo命令打开回显或关闭请求回显功能,或显示消息。
如果没有任何参数,e cho 命令将显示当前回显设置。
语法ech o [{o n|off}] [m essag e]S ample:echo off/ ech o hel lo wo rld 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。
2.@命令表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sampl e:@ec ho of f@e cho N ow in itial izing theprogr am,pl easewaita min ite...@f ormat X: /q/u/a utose t (fo rmat这个命令是不可以使用/y这个参数的,可喜的是微软留了个aut oset这个参数给我们,效果和/y是一样的。
) 3.Go to 命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto labe l (la bel是参数,指定所要转向的批处理程序中的行。
)Samp le:if {%1}=={} got o nop armsif {%2}=={} go to no parms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。
)@Rem c heckparam eters if n ull s how u sage:nop armsecho Usag e: mo nitor.batServe rIP P ortNu mbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,go to命令就是根据这个:来寻找下一步跳到到那里。
bat脚本学习教程(珍藏版)
Bat脚本基础教程TYPE显示文本文件的内容。
[drive:][path]filenameSETLOCAL开始批处理文件中环境改动的本地化操作。
在执行SETLOCAL 之后所做的环境改动只限于批处理文件。
要还原原先的设置,必须执行ENDLOCAL。
达到批处理文件结尾时,对于该批处理文件的每个尚未执行的SETLOCAL 命令,都会有一个隐含的ENDLOCAL 被执行。
SETLOCAL如果命令扩展名被启用,SETLOCAL 会如下改变:SETLOCAL 批命令现在可以接受可选参数:ENABLEEXTENSIONS / DISABLEEXTENSIONS启动或停用命令处理器扩展名。
详细信息,请参阅CMD /?.ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION启动或停用延缓环境变量扩展名.详细信息,请参阅SET /?。
无论在SETLOCAL 命令之前它们的设置是什么,这些修改会一直保留到匹配的ENDLOCAL 命令。
如果有一个参数,SETLOCAL 命令将设置ERRORLEVEL 的值。
如果有两个有效参数中的一个,该值则为零。
用下列技巧,您可以在批脚本中使用这个来决定扩展名是否可用:VERIFY OTHER 2>nulSETLOCAL ENABLEEXTENSIONSIF ERRORLEVEL 1 echo Unable to enable extensions这个方法之所以有效,是因为在CMD.EXE 的旧版本上,SETLOCAL不设置ERRORLEVEL 值。
具有不正确参数的VERIFY 命令将ERRORLEVEL 值初始化成非零值。
POPD命令选项到保存在PUSHD 命令里的目录。
如果命令扩展名被启用,从推目录堆栈POPD 驱动器时,POPD命令会删除PUSHD 创建的临时驱动器号。
PUSHD保存当前目录以供POPD 命令使用,然后改到指定的目录。
bat传递超过10个参数的情况
bat传递超过10个参数的情况批处理文件中可引用的参数为%0~%9,%0是指批处理文件的本身,也可以说是一个外部命令;%1~%9是批处理参数,也称形参;而替换形参的实参若超过了批处理文件中所规定数值(9个)且想在批处理文件中应用这些实参的话,shift命令可以帮你实现!Shift 命令:更改批处理文件中可替换参数的位置C代码shift [/n]n 的取值是[0,8],且为整数;[/n]为可选参数,当赋予n某个值时,就意味着命令从第n个参数开始移位;当n赋予的值为0,1或不带有任何命令选项的shift时,则表示批处理文件中替换参数左移一个位置,后面的替换参数陆续填补上去,直至可替换参数为空。
eg: 创建批处理文件d:\test.bat;C代码@echo offclsecho %1 %2 %3 %4 %5 %6 %7 %8 %9shift /0echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift /1echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift /2echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift /3echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift /4echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift /5echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift /6echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift /7echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift /8echo %1 %2 %3 %4 %5 %6 %7 %8 %9pause 1>nul然后在命令提示符d:\下输入test 1 2 3 4 ......17显示执行结果,就知晓其中的规律啦!C代码D:\>test 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 171 2 3 4 5 6 7 8 92 3 4 5 6 7 8 9 103 4 5 6 7 8 9 10 113 5 6 7 8 9 10 11 123 5 7 8 9 10 11 12 133 5 7 9 10 11 12 13 143 5 7 9 11 12 13 14 153 5 7 9 11 13 14 15 163 5 7 9 11 13 15 16 173 5 7 9 11 13 15 17。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
首先来看个例子
Quote:
for/r%kin(*.exe)do@echo%k
I:\test>for/r%kin(*.exe)do@echo%k
I:\test\6.exe
I:\test\all\sadsad.exe
I:\test\bug\okok.exe
这个命令是用来遍历当前目录以及子目录输出所有以exe为后缀的绝对路径
if"%2"==""echoplztypethevariablenumberwhichyouwanttooutput&gotoreadme
ifexistallyesno.tmpdelallyesno.tmp>nul
for/r%%kin(*.%1)do@echo%%k>>allyesno.tmp
所以下面的程序中用了另一种非常简单的方法
3当需要输出的变量大于实际行数的时候则输出结果为空所以最好加入容错提示
4记得检测allyesno.tmp这个临时文件因为我们是用>>将检测结果输出到临时文件中>>是追加
所以必须检查目录里面是不是已经存在了allyesno.tmp的临时文件
ifnotexistallyesno.tmpechoerrorican'tfindanyfile&gotoend
for/f%%kin(allyesno.tmp)doset/acount=count+1
if"%2"=="all"typeallyesno.tmp&gotoend
if%2gtr%count%echoGOD!Variablenumberoverflow!Yougotashell????&gotoend
example:nvexeall是查找所有exe的文件并输出所有结果
ps:写这个程序的思路源至hhhhhk的提问
[此贴被a11yesno在2005-03-2506:48重新编辑]
附件:nv.rar(1K)下载次数:13(c)Copyleft2003-2007,EvilOctalSecurityTeam.
if%2equ1for/F%%kIN(allyesno.tmp)DOif%%k==%%k@echo%%k&gotoend
if%2leq0echoYoumakeajoke!&gotoend
set/aaddskip=%2-1
for/F"skip=%addskip%"%%kIN(allyesno.tmp)DOif%%k==%%k@echo%%k&gotoend
:readme
echouse:nvfiletypevariablenumber
echouse:nvfiletypeall
echoexample:nvexe3
echoexample:nvexeall
:end
将上面代码保存为nv.bat运行
example:nvexe3是查找所有exe的文件并输出第三个变量结果
由于
for/r%kin(*.exe)do@echo%k>>allyesno.tmp的保存结果是以行来保存
所以我们用for/F"skip=2"%iIN(allyesno.tmp)DO@echo%i的skip参数来进行跳跃行
跳跃2行以后取第三行进行输出就是我们想要的结果输出第三个变量了
Quote:
假如我们要输出第三个变量也就是I:\test\bug\okok.exe我们可以把信息暂时输入到临时文件然后再进行提取
for/r%kin(*.exe)do@echo%k>>allyesno.tmp
然后提取
for/F"skip=2"%iIN(allyesno.tmp)DO@echo%i
[原创]输出第N个bat变量
文章标题:[原创]输出第N个bat变量顶部 a11yesno 发布于:2005-03-2506:43 [楼主][原创]输出第N个bat变量
hhhhhk:
我在写一个批处理的时候,
for/r%PATH%%%kin(%FILE示啊?
5%i与%%i这个仔细看windows的help就会知道当我们在bat里面的写法是%%i而命令行的写法就应该是%i
6有可能出现的问题由于大家可能会对注册表中cmd的环境变量改动以至于造成bat运行不正常解决的办法是
当进入cmd界面以后再次运行cmd.exe加载默认的环境变量这个方法我只在自己的机子上测试过仅共参考
Quote:
另外几个值得注意的问题
1skip<=0的时候程序会出错所以必须加入容错参数
2如果只是需要显示第三行,而不是三行以及后面的行数程序无法使用tokens来过滤不需要显示的行
为什么呢?因为tokens只支持26个令牌当输入结果大于26个的时候是不行的事实上用tokens也是颇麻烦
完整程序如下
Quote:
@echooff
cls
rem输出第N个bat变量byallyesno2005-3-25
setaddskip=0
setcount=0
if"%1"==""echoplztypethefiletypewhatyouwanttofind&gotoreadme
ThisfileisdecompiledbyanunregisteredversionofChmDecompiler.
Regsiteredversiondoesnotshowthismessage.
YoucandownloadChmDecompilerat:/
�