导航:首页 > 程序命令 > bat文件命令大全

bat文件命令大全

发布时间:2023-01-26 23:13:44

⑴ bat命令怎么用

1、bat文件称批处理文件,是可执行文件,winodws双击可以运行,dos或控制台下输入主文件回车可运行。
2、bat命令称批命令。
3、批命令就是成批的执行dos或控件台命令,来完成对计算机操作。
4、把dos或控件台命令,按照要求成批的写入一个文本文件,然后把它保存为扩展名为.bat的文件,然后在dos或控制台或windows下运行这个文件,它就会按照批处理文件里的指令一步步操作计算机了。

⑵ 求脚本(BAT)基本命令

1.“@echo off”--我们所写的BAT一开始一般都有这一句,这一句的作用是:使所有的命令响应隐藏。“@”--本行命令不回显。(本来如果你用echo off就可以了,但是还是能够看到echo off这条命令在CMD下,影响美观) 2.“color 1e”--设置默认的控制台前景和背景颜色。当前我设为蓝底黄字,具体颜色请在CMD下用“color /?”查询。 --这里又提到了这个参数“/?”,一般CMD下命令后加“/?”就会显示这条命令的帮助。 3.“rem”--注释作用,批处理执行过程中前不执行它,rem 后的字符只作注释作用。
4.“title”--设置命令提示窗口的窗口标题。默认为“cmd”。改成自己喜欢的多有个性,嘿嘿。
5.“cls”--不多说,清屏命令。主要是怕前面的一些空白或字符出现影响美观。
6.“set”--这个命令的作用很大,请用“set /?”查询具体使用方法。本例“set topip=172.16.”是将一个名为“topip”的变量值设为“172.16.”。注意CMD下变量的设置不区别数字与字符,能够自动根据提供的值调整。下行“set theip=0.0”同理。
7.“echo .”--在新行中显示一个“.”。echo命令能显示其后的comment。这里提几个有趣实用的用法--“echo.”,注意与前面的不同,“echo”与“.”间无空格。这条命令如同一个回车,在新行不显示任何信息并换行。“echo ”,实现响铃的提示音。后面一个字符的输入方法是在CMD下用“ctrl+G”,而这个字符得到的方法是CMD下用命令“echo "ctrl+G" >ex.txt”,存入ex.txt文件,再从那里提取出来的。嘿嘿,如果你懒得做,就我在上面提供的字符喽。
8.“if”--这条命令也会经常用到,请用“if /?”学习更多信息。本例“if not exist scanipc.exe (echo 文件错误!……) ”,实现功能:当同级目录下不存在“scanipc.exe”时,提示“文件错误!……”。否则不提示。“if not exist filename ”在批处理中使用比较多些。
9.“:top”,设置一个标志点,标志名为“top”。“:”的作用就是设置标志。网上有文章说“使用"::comment"作为注释比"rem comment"执行效率更高。”我相信,这里也建议大家,如果BAT中注释较多时,请使用“::comment”设置。
10.“set /p pno=”--设置一个变量,并接受用户输入。BAT不需要预先声明变量,只在需要时设置。参数“/p”:将变量数值设成用户输入的一行输入。
11.“if %pno% gtr 9 gotoonerrorspno”--检验用户输入值是否大于9,是,则转到一个指定标志点。这里注意BAT中变量引用时要在前后加“%”,但在if语句中可有可无,具体应用大家多写几遍就有体会。
12.“goto label”--无条件跳转到指定标志位并向后执行。BAT好像只有这么一个跳转语句了,作用不用我说,用了就知道。注意不要构成死循环。

小结:到此,完成了颜色设置、注释版权说明、标题设置、变量初始化、欢迎信息、功能界面初始化、标志点设置(因为欢迎信息只显示一次而功能界面要多次使用所以将标志点设置在欢迎信息的后面。)命令的接受与跳转。;功能界面一般要用“tab”键调整相对位置,才能起到美观的效果。请多练习几遍领会。;大家在写脚本过程中要注意标志点的设置位置,才能起到合适的效果。一般写过几个脚本会有些感受。;接着接受用户输入后“cls”清屏开始执行指定功能。注意这个cls的作用。因为清屏可以在此时,也可以在每个命令执行之前,但如果在每个命令执行之前用的请,那么要写的cls就多了,于是把cls写在这里合适,方便节约快捷。

大家在写脚本时也应当注意这方面的技巧,将使你写出更加高效节约方便的代码。在每次写完脚本后合理地整合一下自己的代码。能积累不少经验。;另外,鉴于部分人仍不知道如何建立BAT文件与运行,请:打开记事本,写入代码,保存,保存类型为“所有文件*.*”,文件名为“name*.BAT”。保存后,双击运行。因为一般BAT运行很快,所以你可能只看到窗口一闪就消失了,那么你可以在exit 之前加pause确保能看见运行结果。到此,你应该能够写一个很简单的脚本了,实现一些界面控制。

例1: @echo off color ca title 这是我第一个BAT脚本。 echo 这是我第一个BAT脚本。不错啊。 pause >nul exit 第二节:(提一些好用的命令)以下设置的都是功能段,在“goto step%pno%”跳转到相应功能段后,开始执行相应功能。一般命令段: step1:ping命令。(在echo中变量的引用请注意前后加“%”号,否则会导致程序出错。)我们常用的ping命令:其实很简单,自己看帮助啦。本句“ping %topip%%theip% -n 1 |findstr 100%>nul”将ping 只发送一次数据包,这样命令执行起来就快多了,但这样所会引起一定概率的误判,而我们在内网这种概率很低,低到可以忽略。所以本人使用参数“-n 1”减少执行时间。将结果不回显而通过管道命令“|”送给findstr分析,findstr查找是否存在“100%”,并将回显“丢弃”--“>nul”。因为如果ping一台主机如果返回的结果有“100%”存在说明“不在线。或者有防火墙阻挡。”。所以用findstr确定字符串“100%”的存在性,因为 findstr也有回显,但我们并不需要,所以将它“丢弃”,使用参数“>nul”将指定命令回显丢弃。(这一句命令是重点,请仔细领会。)又因为findstr确定指定字符串的存在性后会设定环境变量“errorlevel”的值,所以我们根据“if %errorlevel% equ 0 (command)”,判断findstr的执行结果就行了,也就不需要有回显。 “errorlevel”作用很大,一般命令行下的命令执行后都有一个特别的errorlevel,我们就可以根据相应的“返回值”作出相应判断并执行相应功能。findstr如果找到指定字符串,则有errorlevel=0,说明:IP不在线。那么既然不在线,我们就没有向下执行的必要了,直接跳回top界面功能接受下一次指令。如果IP有不同回应,说明在线,则开始检测共享。“net view \\%topip%%theip%\”--查看指定IP的共享清单。net详细命令请自行查阅。列出共享清单后返回功能界面。 step2:打开共享一。“explorer \\%topip%%theip%\”,用资源管理器打开指定的IP根。注意语法,其它也没有什么。 step3:IPC$空连接。“net use \\%topip%%theip%\ipc$ "" /user:"administrator"”,一个很老的漏洞,但也许内网还有机子存在哩,嘿嘿,语法就是这样。 step4:一般信息。“ipconfig /all”--用于得到本机的IP与MAC等信息,很好用的命令。语法如示。 “nbtstat -na %topip%%theip%”--用于得到他方机子的一些信息,语法如示。另请自查帮助。 step5:Scanipc。用命令行打开了一个程序而已。在命令行下执行其它命令也就是这样啦。 step6:返回时间。“net time \\%topip%%theip%”--探测指定机子时间,语法如示。 step7:远程连接。“net use \\%topip%%theip%\admin$ "" /user:"administrator"”,嘿嘿,administrator空密码连接。最简单的入侵啦,嘿嘿嘿。语法如示。 step8:本机信息。跳到另一个功能界面执行相应功能。 step9:高级命令。跳到另一个功能界面执行相应功能。 step0:退出程序。一个exit退出脚本。“exit”,退出CMD。 onerrorsip:实现错误提示,并重新执行step1。 onerrorspno:实现错误提示,并重新跳转到功能界面。高级命令段:引用前面已给定的IP,并对其进行一些高级操作。重新绘制功能界面。首先,注意在一个BAT文件中,不允许出现有标志名的重复。 step11:条件连接。设定两个变量,分别为用户名与密码。注意到有一个默认的功能。实现原理是,当接受到用户输入为空时(即一个回车),变量将保持不变。条件连接语法如示。比前面远程空密码连接更高级一点,嘿嘿。 step12:打开共享。打开已经连接成功的对方计算机的指定盘。打开指定盘语法如示。 step13:发送消息。向对方发送消息。要求双方的messager服务开启,否则无法发送成功。发送消息语法如示。 step14:远程关机。设置关机时间与关机理由,用shutdown程序关闭对方计算机,嘿嘿,恶作剧。要求你连接成功,并有 shutdown程序支持。shutdown语法自查帮助。 step15:溢出CMD。嘿嘿,溢出到对方的CMD下,算是一个真正的入侵了。当然需要用户名与密码喽。要求用户名与密码正确并对方默认支持远程管理。并有psexec程序支持。psexec语法如示,并请自查帮助。 step16:结束进程。嘿嘿,不说也知道,结束对方已知进程。要求连接成功并有pskill程序支持。恶作剧类,有恶意成分。嘿嘿。小心使用。 step17:ipc$连接。同step3. step18:断开连接。断开与对方的连接,就是擦屁股啦,以免让对方有所察觉。这个好习惯要养成。语法如示。 step19:一般命令。返回前面一个功能界面。 step20:结束程序。退出。 step110:AT命令,令对方在指定时间运行指定命令。有点像木马,嘿嘿。要求连接成功。因为节约变量,所以引用了前面的暂不使用的变量。好习惯。哈哈。 step111:telnet。远程telnet。不要说你一点都不知道,语法如示并请自查帮助。 step112:更改主IP。主要是为了使我们的使用方便,对某个特定IP段探测能够简化输入。如主IP改成“172.16.130.”,那么专门对130探测,而且输入IP时只需输入最后位,嘿嘿,多方便啊。 step113:任意命令。主要是接受用户输入并执行用户的输入罢了,结构如示。本机信息段:主要是对本机信息的一些查询语法。 stepm1:ipconfig,不说了。但请注意到,在功能界面的实现上有一点,“&”符号,因为“&”符号在CMD下是命令连接符,如果光用“&”会让BAT误解为其后的都是命令。但我们只是希望输出一个“&”罢了,于是用“^”符号连接符表明只是输出“&”,而不是实现命令连接。这里提一下“&”命令连接符,例如:echo frist&echo second.同效于: echo frist echo second. 只是实现结合两行命令在同一行实现。类如一个很简单的批处理啦。再提一下“^”符号连接符,对一些特殊符号可能在CMD下无法正确如愿显示,可用“^”连接,以达到如期效果。用了“^”在文本中占了一位空间,但在输出时它并不显示,所以注意界面的布置。 stepm2:本机进程。利用命令行下的进程工具查看进程。要求pslist程序支持。 stepm3:本机用户。就是查询一下本机用户,也许会发现机了被动过的痕迹。 stepm4:结束进程。在命令行下结束本机进程。要求有pskill程序支持。 stepm5:本机端口。也许能看出被攻击或被入侵的痕迹。语法如示。 stepm6:共享情况。看看本机的共享是否真的如你所想,如你所见。否则请注意安全喽。语法如示。 stepm7:启动项值。在命令行下导出启动项值并给出结果。比魔法兔子什么的快多了,就是界面不是很好看,呵呵。语法如示。 stepm0:退出程序。退出。小结:到此,您学习过了一些有用的命令与应用。以及大部分的网络命令与外部程序的使用。接下来你可以模拟IP小工具写出适合更自己的IP小工具哦。注意每执行完一项功能后要用goto返回功能界面,否则脚本无条件向下继续执行。;errorlevel的应用。在BAT中,errorlevel的作用很大,大家在使用过程中通过多次接触,感受一下如何玩转errorlevel。在执行完一个程序后,可以用echo %errorlevel%查看程序运行后是如何设定errorlevel的值。;if的应用。在BAT中,if语句的作用也很大,特别与errorlevel结合实现自动判断。以及一些基本条件判断。请查看"if /?" 学习更详细的说明。;变量的接受与传递。这方面的感觉需要大家多写BAT才能有所感触。如何合理与高效的应用变量,能使你的脚本更加漂亮。计算机语言都是实践性很强的,我们学习理论只是基础,通过大量的实践才能真正掌握一门语言的应用。 第三节:(一些应用技巧与命令)接下来我们看我的“代理服务器搜索组件 (ver 2.1)”, 1.“>”与“>>”的区别。 “>”--把指定数据传送到指定文件或区域。有覆盖作用,从文件头开始重写文件。如指定文件不存在,则新建文件并存入指定数据。 “>>”--以追加方式将指定数据传送到指定文件或区域。从文件结尾开始写入指定内容。这两个功能有区别,请注意选择合适的传送方式传送数据。例如:“echo 文本内容。>link.txt”与“echo 文本内容。>>link.txt”。若本不存在文件link.txt或文件link.txt内容为空,那么两条命令的运行结果相同。但如果link.txt不为空,那么第一条命令将清除link.txt所有内容并存入数据“文本内容。 ”保存。而第二条命令只在link.txt的文件尾(另起一行,注意每一个“>>”都会另起一行写入新数据)追加数据“文本内容。”而以前的内容保持不变。还要特别提一个前面说过的“丢弃”用法“>nul”,因为我们有时候只需要命令的运行而并不需要看到命令的运行结果以及回显,但这些命令又会出现我们并不需要看到的回显,影响美观。故在其后追加“>nul”,丢弃回显。 2.循环语句的说明。例2: :puship set /p tip= if %tip%==%tbip% goto step1 set tbip=%tip% echo %tip% >>link.txt goto puship 本例中“if %tip%==%tbip% goto step1”与“if %tip% equ %tbip% goto step1”效果一样。本例的作用是接受用户帖入数据。关键技术在于:因为用户帖入数据我们不能使用户每次输入都询问是否结束,而需要实现“ 智能化”的判断,但如何以最少的代码、最简单的方法实现所谓的“智能化”呢。分析用户输入情况:因为一般用户帖入数据都不会出现重复,所以我们利用这个特点,分析用户的数据,当用户帖入列表时,分析数据并将数据存入相应文本,以备后用。当用户粘帖文本结束后,再加一个回车,因为最后一次变量没有接受到任何修改,于是保持默认不变(也就是之前的数据。),再通过我们之前的数据备份对照,分析是否不变,是,则跳出循环。这样,我们通过两个变量以一个IF比较实现相对简单的“智能化”。嘿嘿,这一点代码想了我一个小时。这么说不知道大家是否能理解。请仔细参透例2的技术要点。 3.“FOR /F "eol=; tokens=1 delims=: " %%i in (link.txt) do (set /a Allip=Allip+1>nul)” 这句FOR语句是复杂的杂合语句。首先请用for /?查阅详细用法,这里不再复述。但是特别要提一点的就是批处理与直接命令行下的CMD的区别在FOR语句上。批处理时,变量引用需要有两个“%”号,否则无法正确执行,而CMD下不用,只需一个“%”。 “set /a Allip=Allip+1>nul”--实现算术运算,变量Allip的自增,注意大小写。把回显“丢弃”。本例实现对文件link.txt内容计数,忽略以“;”开头的行。这就是为什么我们在前面要用“echo ;:文本>link.txt”来创建文本的意义所在。 4.“call toping %%i”--从批处理程序调用另一个批处理程序。调用另一个批处理“toping.bat”(因为BAT可以直接运行所以不需要后缀BAT),并有参数传递。参数来自于FOR语句的提取。“FOR /F "eol=; tokens=1 delims=: " %%i in (link.txt) ”--从link.txt的每行中提取文本,从每行的开头第一个字符开始(tokens=1),以“:”界定提取结尾(delims=: )。把提取结果赋给变量i。 5.“type”--在命令行下显示指定文件的内容。相信大家应该很熟悉,不多说了。注意与“>或>>”的结合使用,或与其它操作符的结合使用。 6.“%1”--在CMD下,一个BAT能够接受同时9位的参数,“%1~%9”,分别对应给定的参数变量。“%0”,即是文件本身。我们在使用BAT的过程中会经常遇到两个或两个以上脚本间需要参数传递。那么请好好掌握这个用法,多说无益,需要大家在实践中积累经验。 7.再说一些比较边缘,但大家比较兴趣的命令。呵呵,不要做坏事。 net user admin 123 /add net localgroup administrators admin /add net localgroup users admin /del net user admin /active:yes net user net user admin net user admin /del “net user admin 123 /add”--添加名为“admin”,密码为“123”的用户,如果“123”不写,则默认密码为空。 “net localgroup administrators admin /add”--将用户“admin”加入“administrators”组,嘿嘿,高权限。 “net localgroup users admin /del”--将“admin”从“users”组删除。呵呵,因为用户新加进去时都是“users”组,权限比较低,所以要从这个组跳出来,保证administrators组的权限正式发挥作用,如果不这么做,对方系统会默认你的最低权限。 “net user admin /active:yes”--怕没法使用没有启动,不要紧,激活这个帐号,嘿嘿。 “net user”--看看用户有多少哦。 “net user admin”--看看刚刚加的用户信息如何,是否如我所想,如我所愿呢。 “net user admin /del”--删除用户admin。 -------------------------------------------------------------------------------------------------------------------

⑶ bat批处理命令大全

我有一个txt格式的文档,但是字数太多粘贴不上来(超过10000字)你可以加我,我传给你
目录:第一章 批处理基础 第一节 常用批处理内部命令简介 1、REM 和 :: 2、ECHO 和 @ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和 : 9、FIND 10、START 11、assoc 和 ftype 12、pushd 和 popd 13、CALL 14、shift 15、IF 16、setlocal 与 变量延迟 17、ATTRIB 显示或更改文件属性 第二节 常用特殊符号 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程序 八、将批处理转化为可执行文件 九、时间延迟 1、利用ping命令延时 2、利用for命令延时 3、利用vbs延迟函数,精确度毫秒,误差1000毫秒内 4、仅用批处理命令实现任意时间延迟,精确度10毫秒,误差50毫秒内 十、模拟进度条 十一、特殊字符的输入及应用 十二、随机数(%random%)的应用技巧 十三、变量嵌套 与 命令嵌套 全文: http://xiangkg.blog.163.com 1、更正了所有的错别字,适当排版,增加条理性。 2、运行改善所有例子,并纠正了一些语法错误。 3、补充了一些不完全的地方。 4、第一章参考了网上许多教程汇编而成。 5、20080229补充了变量延迟的问题。 6、20080305修改了参数usebackq的说明 7、20080310增加了特殊字符的输入及应用 8、20080311修改了子程序部分 9、20080313修改了echo说明,归纳了9个应用方法 10、20080320增加任意时间延迟方法 11、20080321增加了set计算中十进制与八进制混淆问题的说明 12、20080325修正dos数值计算范围:-2147483648 至2147483647,即-2^31~2^31-1 13、20080326增加随机数的应用 14、20080327修改了“if增强用法”中的defined语句说明 15、20080402增加变量嵌套与命令嵌套,重要技巧之一。很高兴为你回答。如果你觉得满意的话请采纳。谢谢!

⑷ bat文件x指令


R:>x/?

复制文件和目录树。


XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]

[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]

[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]

[/EXCLUDE:file1[+file2][+file3]...]


source 指定要复制的文件。

destination 指定新文件的位置和/或名称。

/A 仅复制有存档属性集的文件,但不更改属性。

/M 仅复制有存档属性集的文件,并关闭存档属性。

/D:m-d-y 复制在指定日期或指定日期以后更改的文件。

如果没有提供日期,只复制那些源时间比目标时间新的文件。

/EXCLUDE:file1[+file2][+file3]...

指定含有字符串的文件列表。每个字符串在文件中应位于单独的一行。

如果任何字符串与复制文件的绝对路径的任何部分相符,则排除复制

该文件。例如,指定如 obj 或 .obj 的字符串会分别排除目录

obj 下面的所有文件或带有 .obj 扩展名的所有文件。

/P 创建每个目标文件之前提示您。

/S 复制目录和子目录,不包括空目录。

/E 复制目录和子目录,包括空目录。与 /S /E 相同。可以用来修改 /T。

/V 验证每个新文件的大小。

/W 提示您在复制前按键。

/C 即使有错误,也继续复制。

/I 如果目标不存在,且要复制多个文件,则假定目标必须是目录。

/Q 复制时不显示文件名。

/F 复制时显示完整的源文件名和目标文件名。

/L 显示要复制的文件。

/G 允许将加密文件复制到不支持加密的目标。

/H 也复制隐藏文件和系统文件。

/R 覆盖只读文件。

/T 创建目录结构,但不复制文件。不包括空目录或子目录。/T /E 包括

空目录和子目录。

/U 只复制已经存在于目标中的文件。

/K 复制属性。一般的 X 会重设只读属性。

/N 用生成的短名称复制。

/O 复制文件所有权和 ACL 信息。

/X 复制文件审核设置(隐含 /O)。

/Y 取消提示以确认要覆盖现有目标文件。

/-Y 要提示以确认要覆盖现有目标文件。

/Z 在可重新启动模式下复制网络文件。

/B 复制符号链接本身与链接目标相对。

/J 复制时不使用缓冲的 I/O。推荐复制大文件时使用。


开关 /Y 可以预先在 COPYCMD 环境变量中设置。

这可能被命令行上的 /-Y 覆盖。


R:>

⑸ bat文件命令大全

我有本bat命令大全电子书,但是上面无法复制,含有几百个命令的解释用法还有例子,很好的,如果想要的话,留下邮箱,我给你发过去 bat批处理教程 OK,never claver and get to business(闲话少说言归正传)。批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。再说句“闲话”:要学好批处理,DOS基础一定要牢!当然脑子灵活也是很重要的一方面。 例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似): ping sz.tencent.com > a.txt ping sz1.tencent.com >> a.txt ping sz2.tencent.com >> a.txt ping sz3.tencent.com >> a.txt ping sz4.tencent.com >> a.txt ping sz5.tencent.com >> a.txt ping sz6.tencent.com >> a.txt ping sz7.tencent.com >> a.txt exit 是不是都能看的懂?是不是很easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ服务器,从而远离“从服务器中转”那一痛苦的过程。这里>的意思,是把前面命令得到的东西放到后面所给的地方,>>的作用,和>的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt文件越来越大(想到如何搞破坏了??)。By the way,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接显示速度最快的服务器IP,是不是很爽?后面还将详细介绍。 例二、再给出一个已经过时的例子(a.bat): @echo off if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif a.bat 为什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带广告的QQ了(KAO,我的QQ还显示好友三围呢!!),所以它几乎用不上了。但曾经它的作用是不可小窥的:删除QQ的广告,让对话框干干净净。这里用的地址是QQ的默认安装地址,默认批处理文件名为a.bat,你当然可以根据情况自行修改。在这个脚本中使用了if命令,使得它可以达到适时判断和删除广告图片的效果,你只需要不关闭命令执行后的DOS窗口,不按CTRL+C强行终止命令,它就一直监视是否有广告图片(QQ也再不断查看自己的广告是否被删除)。当然这个脚本占用你一点点内存,呵呵。 例三,使用批处理脚本查是否中冰河。脚本内容如下: @echo off netstat -a -n > a.txt type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!" del a.txt pause & exit 这里利用了netstat命令,检查所有的网络端口状态,只需要你清楚常见木马所使用的端口,就能很easy的判断出来是否被人种了冰河。然这不是确定的,因为冰河默认的端口7626,完全可以被人修改。这里介绍的只是方法和思路

⑹ bat文件x指令

x是用来复制文件和目录树,下面是这个复制指令的详细解释和参数,你可以参考以后用来编写你的批处理文件。

XCOPY 源 [目标] [/A | /M] [/D[:d ate]] [/P] [/S [/E]] [/V] [/W]
[/C][/I][/Q][/F][/L][/G][/H][/R][/T][/U]
[/K][/N][/O][/X][/Y][/-Y][/Z][/B][/J]
[/排除:file1[+file2][+file3]...][/压缩]

源 指定要复制的文件。
目标 指定新文件的位置和/或名称。
/A 仅复制具有存档属性集的文件,
不更改属性。
/M 仅复制具有存档属性集的文件,
关闭存档属性。
/D:m-d-y 复制在指定日期或之后更改的文件。
如果未给定日期,则仅复制那些
源时间比目标时间新的文件。
/排除:file1[+file2][+file3]...
指定包含字符串的文件列表。 每个字符串
应位于文件的单独行中。 当任意
字符串与要复制的文件的绝对路径的任意部分
匹配时,将从复制中排除该文件。 例
如,指定 \obj\ 或 .obj 等字符串将排除
目录 obj 下的所有文件或所有具有
.obj 扩展名的文件。
/P 创建每个目标文件之前会提示你。
/S 复制除空目录和空子目录之外的目录和子目录。
/E 复制目录和子目录,包括空目录和空子目录。
与 /S /E 相同。可用于修改 /T。
/V 验证每个新文件的大小。
/W 提示你在复制前按键。
/C 即使出现错误也继续复制。
/I 如果目标不存在,且正在复制多个文件,
则假定目标必须为目录。
/-I 如果目标不存在,且正在复制单个指定文件,
则假定目标必须为文件。
/Q 复制时不显示文件名。
/F 复制时显示完整的源文件名和目标文件名。
/L 显示要复制的文件。
/G 允许将加密文件复制到
不支持加密的目标。
/H 同时复制隐藏文件和系统文件。
/R 覆盖只读文件。
/T 创建目录结构,但不复制文件。不
包括空目录或空子目录。/T /E 包括
空目录和空子目录。
/U 仅复制已存在于目标中的文件。
/K 复制属性。普通 X 将重置只读属性。
/N 使用生成的短名称进行复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(表示 /O)。
/Y 取消提示以确认要覆盖
现有目标文件。
/-Y 导致提示以确认要覆盖
现有目标文件。
/Z 在可重启模式下复制网络文件。
/B 复制符号链接本身与链接目标。
/J 使用未缓冲的 I/O 进行复制。建议用于非常大的文件。
/压缩 文件传输期间请求网络压缩(如果
适用)。
/稀疏 在复制稀疏文件时保留稀疏状态。

可以在 COPYCMD 环境变量中预设开关 /Y。
这可能在命令行上被替代为 /-Y。

⑺ Perl-4 Windows批处理(cmd/bat)常用命令大全 2020-12-20

简单详细,建议收藏
常见问题:
1.如果你自己编写的.bat文件,双击打开,出现闪退
2.批处理.bat 文件中输出中文乱码
解决方法在文章末尾!

前言
批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。编写批处理文件非常简单,但难点在于确保一切按顺序执行。编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效
在Windows中善用批处理可以简化很多重复工作

什么是批处理?
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展
名为bat

1 echo 和 @
回显命令
@ #关闭单行回显
echo off #从下一行开始关闭回显
@echo off #从本行开始关闭回显。一般批处理第一行都是这个
echo on #从下一行开始打开回显
echo #显示当前是 echo off 状态还是 echo on 状态
echo. #输出一个”回车换行”,空白行
(同echo, echo; echo+ echo[ echo] echo/ echo)

2 errorlevel
echo %errorlevel%
每个命令运行结束,可以用这个命令行格式查看返回码
默认值为0,一般命令执行出错会设 errorlevel 为1

3 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 abc

6 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
拷贝文件
c:test.txt d:test.bak
复制 c:test.txt 文件到 d: ,并重命名为 test.bak
con test.txt
从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件
con代表屏幕,prn代表打印机,nul代表空设备
1.txt + 2.txt 3.txt
合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件
如果不指定 3.txt ,则保存到 1.txt
test.txt +
复制文件到自己,实际上是修改了文件日期

12 title
设置cmd窗口的标题
title 新标题 #可以看到cmd窗口的标题栏变了

13 ver
显示系统版本

14 label 和 vol
设置卷标
vol #显示卷标
label #显示卷标,同时提示输入新卷标
label c:system #设置C盘的卷标为 system

15 pause
暂停命令

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 返回码为1
find /i “abc” c:test.txt
查找含 abc 的行,忽略大小写
find /c "abc" c:test.txt
显示含 abc 的行的行数

20 more (外部命令)
逐屏显示
more c:test.txt #逐屏显示 c:test.txt 的文件内容

21 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 > 和 >>
输出重定向命令

27 <
从文件中获得输入信息,而不是从屏幕上
一般用于 date time label 等需要等待输入的命令
@echo off
echo 2005-05-01>temp.txt
date <temp.txt
del temp.txt
这样就可以不等待输入直接修改当前日期

28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 % *
命令行传递给批处理的参数
%0 批处理文件本身
%1 第一个参数
%9 第九个参数
%* 从第一个参数开始的所有参数
批参数(%n)的替代已被增强。您可以使用以下语法:
%~1 - 删除引号(" ), 扩充 %1
%~f1 - 将 %1 扩充到一个完全合格的路径名
%~d1 - 仅将 %1 扩充到一个驱动器号
%~p1 - 仅将 %1 扩充到一个路径
%~n1 - 仅将 %1 扩充到一个文件名
%~x1 - 仅将 %1 扩充到一个文件扩展名
%~s1 - 扩充的路径指含有短名
%~a1 - 将 %1 扩充到文件属性
%~t1 - 将 %1 扩充到文件的日期/时间
%~z1 - 将 %1 扩充到文件的大小
%~ PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1,
并扩展到找到的第一个文件的驱动器号和路径。
%~ftza1 - 将 %1 扩展到类似 DIR 的输出行。
可以参照 call/? 或 for/? 看出每个参数的含意
echo load "%%1" "%%2">c:test.txt
生成的文件内容为 load "%1" "%2"
批处理文件里,用这个格式把命令行参数输出到文件

29 if
判断命令
if "%1"=="/a" echo 第一个参数是/a
if /i "%1" equ "/a" echo 第一个参数是/a
/i 表示不区分大小写,equ 和 == 是一样的,其它运算符参见 if/?
if exist c:test.bat echo 存在c:test.bat文件
if not exist c:windows (
echo 不存在c:windows文件夹
)
if exist c:test.bat (
echo 存在c:test.bat
) else (
echo 不存在c:test.bat
)
30 setlocal 和 endlocal
设置”命令扩展名”和”延缓环境变量扩充”
SETLOCAL ENABLEEXTENSIONS #启用"命令扩展名"
SETLOCAL DISABLEEXTENSIONS #停用"命令扩展名"
SETLOCAL ENABLEDELAYEDEXPANSION #启用"延缓环境变量扩充"
SETLOCAL DISABLEDELAYEDEXPANSION #停用"延缓环境变量扩充"
ENDLOCAL #恢复到使用SETLOCAL语句以前的状态
“命令扩展名”默认为启用
“延缓环境变量扩充”默认为停用
批处理结束系统会自动恢复默认值
可以修改注册表以禁用"命令扩展名",详见 cmd /? 。所以用到"命令扩展名"的程
序,建议在开头和结尾加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 语句,以确
保程序能在其它系统上正确运行
"延缓环境变量扩充"主要用于 if 和 for 的符合语句,在 set 的说明里有其实用例程

31 set
设置变量
引用变量可在变量名前后加 % ,即 %变量名%
set #显示目前所有可用的变量,包括系统变量和自定义的变量
echo %SystemDrive% #显示系统盘盘符。系统变量可以直接引用
set p #显示所有以p开头的变量,要是一个也没有就设errorlevel=1
set p=aa1bb1aa2bb2 #设置变量p,并赋值为 = 后面的字符串,即aa1bb1aa2bb2
echo %p% #显示变量p代表的字符串,即aa1bb1aa2bb2
echo %p:~6% #显示变量p中第6个字符以后的所有字符,即aa2bb2
echo %p:~6,3% #显示第6个字符以后的3个字符,即aa2
echo %p:~0,3% #显示前3个字符,即aa1
echo %p:~-2% #显示最后面的2个字符,即b2
echo %p:~0,-2% #显示除了最后2个字符以外的其它字符,即aa1bb1aa2b
echo %p:aa=c% #用c替换变量p中所有的aa,即显示c1bb1c2bb2
echo %p:aa=% #将变量p中的所有aa字符串置换为空,即显示1bb12bb2
echo %p: bb=c% #第一个bb及其之前的所有字符被替换为c,即显示c1aa2bb2
set p=%p:
bb=c% #设置变量p,赋值为 %p:*bb=c% ,即c1aa2bb2
set /a p=39 #设置p为数值型变量,值为39
set /a p=39/10 #支持运算符,有小数时用去尾法,39/10=3.9,去尾得3,p=3
set /a p=p/10 #用 /a 参数时,在 = 后面的变量可以不加%直接引用
set /a p=”1&0″ #”与”运算,要加引号。其它支持的运算符参见set/?
set p= #取消p变量
set /p p=请输入
屏幕上显示”请输入”,并会将输入的字符串赋值给变量p
注意这条可以用来取代 choice 命令
注意变量在 if 和 for 的复合语句里是一次性全部替换的,如
@echo off
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo %p%
)
结果将显示
aaa
aaa
因为在读取 if 语句时已经将所有 %p% 替换为aaa
这里的"替换",在 /? 帮助里就是指"扩充"、"环境变量扩充"
可以启用”延缓环境变量扩充”,用 ! 来引用变量,即 !变量名!
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo !p!
)
ENDLOCAL
结果将显示
aaa
bbb
还有几个动态变量,运行 set 看不到
%CD% #代表当前目录的字符串
%DATE% #当前日期
%TIME% #当前时间
%RANDOM% #随机整数,介于0~32767
%ERRORLEVEL% #当前 ERRORLEVEL 值
%CMDEXTVERSION% #当前命令处理器扩展名版本号
%CMDCMDLINE% #调用命令处理器的原始命令行
可以用echo命令查看每个变量值,如 echo %time%
注意 %time% 精确到毫秒,在批处理需要延时处理时可以用到

32 start
批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令

33 call
批处理中调用另外一个批处理的命令,否则剩下的批处理指令将不会被执行
有时有的应用程序用start调用出错的,也可以call调用

34 choice (外部命令)
选择命令
让用户输入一个字符,从而选择运行不同的命令,返回码errorlevel为1234……
win98里是choice.com
win2000pro里没有,可以从win98里拷过来
win2003里是choice.exe
choice /N /C y /T 5 /D y>nul
延时5秒

35 assoc 和 ftype
文件关联
assoc 设置'文件扩展名'关联,关联到'文件类型'
ftype 设置'文件类型'关联,关联到'执行程序和参数'
当你双击一个.txt文件时,windows并不是根据.txt直接判断用 notepad.exe 打开
而是先判断.txt属于 txtfile '文件类型'
再调用 txtfile 关联的命令行 txtfile=%SystemRoot%system32NOTEPAD.EXE %1
可以在"文件夹选项"→"文件类型"里修改这2种关联
assoc #显示所有'文件扩展名'关联
assoc .txt #显示.txt代表的'文件类型',结果显示 .txt=txtfile
assoc .doc #显示.doc代表的'文件类型',结果显示 .doc=Word.Document.8
assoc .exe #显示.exe代表的'文件类型',结果显示 .exe=exefile
ftype #显示所有'文件类型'关联
ftype exefile #显示exefile类型关联的命令行,结果显示 exefile="%1" %*
assoc .txt=Word.Document.8
设置.txt为word类型的文档,可以看到.txt文件的图标都变了
assoc .txt=txtfile
恢复.txt的正确关联
ftype exefile="%1" %*
恢复 exefile 的正确关联
如果该关联已经被破坏,可以运行 command.com ,再输入这条命令

36 pushd 和 popd
切换当前目录
@echo off
c: & cd & md mp3 #在 C: 建立 mp3 文件夹
md d:mp4 #在 D: 建立 mp4 文件夹
cd /d d:mp4 #更改当前目录为 d:mp4
pushd c:mp3 #保存当前目录,并切换当前目录为 c:mp3
popd #恢复当前目录为刚才保存的 d:mp4

37 for
循环命令
这个比较复杂,请对照 for/? 来看

38 subst (外部命令)
映射磁盘。
subst z: serverd #这样输入z:就可以访问serverd了
subst z: /d #取消该映射
subst #显示目前所有的映时

39 x (外部命令)
文件拷贝
x d:mp3 e:mp3 /s/e/i/y
复制 d:mp3 文件夹、所有子文件夹和文件到 e: ,覆盖已有文件
加 /i 表示如果 e: 没有 mp3 文件夹就自动新建一个,否则会有询问

⑻ bat的常用命令

显示信息,或将命令回显打开或关上。
ECHO [ON | OFF]
ECHO [message]
要显示当前回显设置,键入不带参数的 ECHO。
echo 命令的第一个用法,echo on和echo off
echo on表示打开回显,echo off表示关闭回显,何为回显?打开回显就是执行命令时会把命令显示出来,关闭回显反之.
echo 命令的第二个用法,echo message,这个很简单,就是显示后面的信息
echo 命令第三个用法,显示当前回显设置,就是显示回显打开或关闭
echo也可以输出文件。下面再说。
以下的这段代码可以让你很好地理解echo的用法(包括如何用echo输出空行)
echo 这是没有关闭回显
echo;
echo
echo off
echo 这是关闭了回显
echo;
echo
pause 暂停批处理程序,并显示以下消息:
请按任意键继续. . .
这个命令没有什么好说的,要暂停时直接pause就行了,当然后面我们会用pause>nul 清除屏幕。
CLS
这个命令也没有什么好说的,清屏,自己试一次就知道了 在批处理文件或 CONFIG.SYS 里加上注解或说明。
REM [comment]
这个命令同样没什么好说的,用法就是rem 注释
PS:其实可以用::代替REM,可以提高执行速度,不过REM的兼容性更好,我还是建议大家用rem注释 1.给变量赋值(撤销)
例1:

@echo off
set str=My name is Xiao
echo %str%
rem 批处理中的变量一般需要用%来扩展,相见特殊符号一节
pause>nul
例2.
@echo off
set str=ABCDEFGHIJKLMN
echo %str%
set str=
echo;%str%
rem 还记得加;可以实现什么效果吗?一个空行,为什么要这么做呢?想不出来的话去掉这个;试试
pause>nul
上面的例子中,一个是给变量赋值,一个是撤销变量的值
2.等待用户输入数据(开关/P)
例:
@echo off
set /p name=请输入你的姓名:
set /p age=请输入你的年龄(纯数字):
echo 所以,%name%今年%age%岁咯?
pause>nul
3.计算(开关/A)
例1:
@echo off
set /a num=(12*2)+(13*4)
echo (12x2)+(13x4)=%num%
pause>nul
例2:
@echo off
set /p num=请输入一个数字(不要超过2147483647):
REM 批处理能处理的数字不能超过32位(二进制)
set /a num*=2
echo 这个数字的两倍是%num%
pause>nul
附:Set /a num*=2与set /a num=num*2等价
() - 分组
! ~ - - 一元运算符
* / % - 算数运算符
+ - - 算数运算符
<< >> - 逻辑移位
- 按位“与”
^ - 按位“异”
| - 按位“或”
= *= /= %= += -= - 赋值
&= ^= |= <<= >>=
, - 表达式分隔符
set /a支持多行表达式并列,比如set /a num1=1+1,num2=1+2,num3=1+3
并且set /a不需要扩展变量,比如set /a num=%num2%+%num3%与set /a num=num2+num3等价
以上内容仅为基础教程
4.显示当前已定义变量
例:
@set
@pause>nul
是不是很简单?其实它还有更高级的用法呢
@set a
@pause>nul
@set s
@pause>nul
你们发现什么了吗??它的用法就是这些,不用多说了 1.IF的第一种用法,比较字符串
例:
set /p PW=请输入密码:
if %PW%==bat (
echo YES!
) ELSE (
Rem [else] 为可选参数,表示否则,即如果变量PW等于bat则输出YES!否则输出NO!
echo NO!
)
pause>nul
通过set /p和if可以实现一个简单的密码判断,当然这个密码判断可以很轻易地被破解,仔细动脑筋想一想,该怎么破解呢.
不过这个密码判断尚有不足之处,假如我们什么都不输入直接回车,便会提示错误,那该怎么办呢?很简单,只要加上双引号(其它的符号也行)就行了=>if %PW%==bat
2.IF的第二种用法,比较数字
例:
set /p num1=请第一个输入数字:
set /p num2=请第二个输入数字:
if not %num1% LSS %num2% (
rem lss表示小于
rem [not]为可选参数,表示非,即如果变量num1不小于变量num2就输出第一个数字大,否则输出第二个数字大
echo 第一个数字大
) ELSE (
echo 第二个数字大
)
pause>nul
这段代码可以实现一个简单的判断,不过尚有不足之处-----如果这两个数字相等呢,这就要请出我们的else if啦(当然你也可以用几个if来判断)
set /p num1=请第一个输入数字:
set /p num2=请第二个输入数字:
if %num1% gtr %num2% (
echo 第一个数字大
) ELSE if %num1% EQU %num2% (
echo 一样大
) ELSE (
echo 第二个数字大
)
pause>nul
------比较运算符-----
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
3.IF的第三种用法,检测文件(夹)是否存在
例:
@echo off
if exist C:windows (
echo 你的C盘有windows文件(夹^)
) else (
echo 你的C盘没有windows文件(夹^)
)
pause>nul
^为转义符号,在特殊符号一节再作讲解
4.IF的第四种用法,检测变量是否被定义
例:
@echo off
set var=aiwozhonghua
if defined var (
echo 变量var已被定义,它的值为%var%
) else (
echo 变量var没有被定义
)
pause>nul
去掉第一行的set看看执行结果有什么不同,你明白它的用法了吗?
5.IF的第五种用法,判断返回值(ERRORLEVEL)
要判断返回值,首先要理解返回值是个什么概念,批处理中的返回值一般表示了上个命令的执行结果(成功/失败/等)
每个命令执行完毕后返回值都会做相应的更改,一般返回值为0表示成功,1表示失败,有一些第三方的返回值比较特殊(如Choice.exe,Tmos.exe,Cmos.exe),在这里就不讲解了
例:
@echo off
echo;>>%systemroot% est.txt
if errorlevel 1 ( echo 写入成功! ) else echo 写入失败
pause>nul
这段代码尝试向%systemroot%system32写入数据,如果权限不够或杀毒软件拦截就会写入失败,这时就会显示写入失败.不知道%systemroot%表示了什么?单独键入set自己仔细看一下结果.
不过看到后面你会发现这段代码还有更简便的写法
注:用 if errorlevel判断返回值时要将返回值从大到小排列
例:
@echo off
choice /C:ABC /n A/B/C
if errorlevel 3 echo You choose the C
if errorlevel 2 echo You choose the B
if errorlevel 1 echo You choose the A
pause>nul 将 cmd.exe 导向到批处理程序中带标签的行。
GOTO label
label 指定批处理程序中用作标签的文字字符串。

标签必须单独一行,并且以冒号打头。
如果命令扩展名被启用,GOTO 会如下改变:
GOTO 命令现在接受目标标签 :EOF,这个标签将控制转移到当前
批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的
办法。有关能使该功能有用的 CALL 命令的扩展名描述,请键入
CALL /?。
label是什么?这可不是命令label,它指的是标签,标签是啥?见例子
例:
@echo off
set /p pw=请输入密码:
if %pw%==bathome goto yes
goto :eof
rem 未定义的:eof会退出脚本文件
:yes
echo 密码正确!
pause>nul
这是一个更加完整的密码判断,仔细阅读并执行这行代码,现在你知道标签是什么了吗,没错,那个:yes就是标签了!
标签的格式
:标签名
关掉回显以后你有没有发现什么?没错,标签所在的那一行没有被执行,这就是为什么::比rem更快的原因了,但是标签不能被使用在一个语句的内部,主要就是被括号括起来的语句(是的,被括号括起来的语句被看作一个整体),因此::的兼容性没有rem那么好
附:::其实就是不规范的标签名... 1.FOR
对一组文件中的每一个文件执行某个特定命令。
FOR%variableIN (set) DO command [command-parameters]
%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。
例:
@echo off
for %%i in (*.txt) do echo %%i
pause>nul
这段代码会显示当前文件夹下所有的txt文件
@echo off
for %%i in (菜 芽 小 公 公) do echo %%i
pause>nul这段代码会显示





注:%%i为for输出专用变量格式,其中i可以是a/A/0-z/Z/9和一些符号什么的(如! # 不过不建议使用),在cmd中只能用一个%
2.FOR /L
FOR /L %variable IN (start,step,end) DO command [command-parameters]
该集表示以增量形式从开始到结束的一个数字序列。
因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生
序列 (5 4 3 2 1)。
例:
@echo off
for /L %%a in (1 2 1000) do echo %%apause>nul
这个用法很简单,没有什么要讲解的,从这段代码主要是看出了逗号可以省略.当然还有一些稀奇古怪的用法为了防止新手弄混在这里就不讲解了
3.FOR /R
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
检查以 [drive:]path 为根的目录树,指向每个目录中的
FOR 语句。如果在 /R 后没有指定目录,则使用当前
目录。如果集仅为一个单点(.)字符,则枚举该目录树。
这个命令同样有一些看起来很奇怪的用法,为了防止新手迷糊就只讲解基础的
例:
@echo off
for /r C:Windwossystem32 %%i in (*) do echo %%i
pause>nul
这段代码枚举了C:Windwossystem32下所有的文件,包括子文件夹里的
4.FOR /D
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,则指定与目录名匹配,而不与文件
名匹配。
这个命令的用法和上面差不多,只不过是枚举目录名,不详解了
5.FOR /F
for /f是一个非(丧)常(心)复(病)杂(狂)的命令...
让我们从它的第一个用法来讲:
FOR /F [options] %variable IN (file-set) DO command [command-parame
例:
@echo off
echo 1,1 2,1 3,1 4,1>>test.txt
echo A1,2 2,2 3,2 4,2>>test.txt
echo 1,3 2,3 3,3 4,3>>test.txt
echo A1,4 2,4 3,4 4,4>>test.txt
rem 以上代码在当前文件夹下生成了一个test.txt,打开看看?
For /F %%i In (test.txt) Do Echo %%i
pause>nul
For /F tokens=2 %%i In (test.txt) Do Echo %%i
pause>nul
For /F tokens=3 %%i In (test.txt) Do Echo %%i
pause>nul
For /F tokens=4 %%i In (test.txt) Do Echo %%i
pause>nul
我想执行完这个bat,再分析一下结果和代码,聪明的你一定了解了tokens的用处
for /f 默认以空格为分隔符,将每一行分割为几个元素,而tokens就表示取第几个元素.但假如我们要取的不是一个元素呢?需要全部显示出来怎么办?
tokens=* 表示取所有元素,用%%i输出
tokens=1,2,3,4或tokens=1-4 然后用%%i或%%i,%%j,%%k,%%l 输出
其实我们还有其他的方法,比如请出delims参数
例:
@echo off
rem test.txt已经有了,就不生成了
for /f delims=* %%i in (test.txt) do echo %%i
pause>nul
delims是个啥玩意儿?其实这就是分割符的设定,默认以空格为分隔符,你可以将分隔符设置成其他的,你的文本就不会被分割了,delims同样支持多个分隔符,格式delims=第一个分隔符,第二个分隔符,第三个分隔符
啊哈,还有一个skip和eol,skip表示忽略前几行,比如skip=10表示忽略这个文本的前十行,我这个文本只有4行,如果你加上skip=10的话就什么都不会输出了
eol表示忽略以某个符号开头的行,比如eol=A,当某一行的开头是A的时候,这一行就不会被处理,不过支持设置一个符号
for /f同也可以处理字符串
FOR /F [options] %variable IN (string) DO command [command-parameters]
字符串需要用双引号引起来,其余用法一样,不过这里就要讲到usebackq参数了,for /f是支持处理多个文件的,文件直接用空格隔开(某些符号也可以),假如文件名中含有空格怎么办呢?那好像只能用双引号引起来了,但是用双引号引起来会被识别成字符串的,这时就要请出usebackq参数了,加上这个参数,带引号的字符串也会被识别为文件~
FOR /F [options] %variable IN ('command') DO command [command-parameters]
用for /f来处理命令执行的结果,命令要用单引号引起来
例:
@echo off
for /f skip=3 %%i in ('tasklist') do echo;%%i
pause>nul
这段代码就处理了命令ipconfig的执行结果,单独键入tasklist看会出现什么?
================================================
~I - 删除任何引号(),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
%~zI - 将 %I 扩充到文件的大小
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个完全合格的名称。如果环境变量名
未被定义,或者没有找到文件,此组合键会扩充到
空字符串
组合修饰符来得到多重结果:
%~dpI - 仅将 %I 扩充到一个驱动器号和路径
%~nxI - 仅将 %I 扩充到一个文件名和扩展名
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名
%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个驱动器号和路径。
%~ftzaI - 将 %I 扩充到类似输出线路的 DIR
===================================================
这些不多说了,自己用for /r命令输出的时候把%%i改成%%~nxi之类的试一试就理解了 1. IF-EXIST
1)
首先用记事本在C:建立一个test1.bat批处理文件,文件内容如下:
@echo off
IF EXIST AUTOEXEC.BAT TYPE AUTOEXEC.BAT
IF NOT EXIST AUTOEXEC.BAT ECHO AUTOEXEC.BAT does not exist
然后运行它:
C:>TEST1.BAT
如果C:存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。
2)
接着再建立一个test2.bat文件,内容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist
执行:
C:>TEST2 AUTOEXEC.BAT
该命令运行结果同上。
说明:
(1) IF EXIST 是用来测试文件是否存在的,格式为
IF EXIST [路径+文件名] 命令
(2) test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。
3) 更进一步的,建立一个名为TEST3.BAT的文件,内容如下:
@echo off
IF %1 == A ECHO XIAO
IF %2 == B ECHO TIAN
IF %3 == C ECHO XIN
如果运行:
C:>TEST3 A B C
屏幕上会显示:
XIAO
TIAN
XIN
如果运行:
C:>TEST3 A B
屏幕上会显示
XIAO
TIAN
在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。
2、IF-ERRORLEVEL
建立TEST4.BAT,内容如下:
@ECHO OFF
XCOPY C:AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷贝失败
IF ERRORLEVEL 0 ECHO 成功拷贝文件
然后执行文件:
C:>TEST4
如果文件拷贝成功,屏幕就会显示“成功拷贝文件”,否则就会显示“文件拷贝失败”。
IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。因此下面的批处理文件是错误的:
@ECHO OFF
XCOPY C:AUTOEXEC.BAT D:
IF ERRORLEVEL 0 ECHO 成功拷贝文件
IF ERRORLEVEL 1 ECHO 未找到拷贝文件
IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作
IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作
IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误
无论拷贝是否成功,后面的:
未找到拷贝文件
用户通过ctrl-c中止拷贝操作
预置错误阻止文件拷贝操作
拷贝过程中写盘错误
都将显示出来。

⑼ BAT文件的所有命令和用法

bat文件的命令和DOS命令一样的,本来就是DOS命令写的。
所有的命令:
有关某个命令的详细信息,请键入
HELP
命令名
ASSOC
显示或修改文件扩展名关联。
AT
计划在计算机上运行的命令和程序。
ATTRIB
显示或更改文件属性。
BREAK
设置或清除扩展式
CTRL+C
检查。
CACLS
显示或修改文件的访问控制列表(ACLs)。
CALL
从另一个批处理程序调用这一个。
CD
显示当前目录的名称或将其更改。
CHCP
显示或设置活动代码页数。
CHDIR
显示当前目录的名称或将其更改。
CHKDSK
检查磁盘并显示状态报告。
CHKNTFS
显示或修改启动时间磁盘检查。
CLS
清除屏幕。
CMD
打开另一个
Windows
命令解释程序窗口。
COLOR
设置默认控制台前景和背景颜色。
COMP
比较两个或两套文件的内容。
COMPACT
显示或更改
NTFS
分区上文件的压缩。
CONVERT

FAT
卷转换成
NTFS。您不能转换
当前驱动器。
COPY
将至少一个文件复制到另一个位置。
DATE
显示或设置日期。
DEL
删除至少一个文件。
DIR
显示一个目录中的文件和子目录。
DISKCOMP
比较两个软盘的内容。
DISKCOPY
将一个软盘的内容复制到另一个软盘。
DOSKEY
编辑命令行、调用
Windows
命令并创建宏。
ECHO
显示消息,或将命令回显打开或关上。
ENDLOCAL
结束批文件中环境更改的本地化。
ERASE
删除至少一个文件。
EXIT
退出
CMD.EXE
程序(命令解释程序)。
FC
比较两个或两套文件,并显示
不同处。
FIND
在文件中搜索文字字符串。
FINDSTR
在文件中搜索字符串。
FOR
为一套文件中的每个文件运行一个指定的命令。
FORMAT
格式化磁盘,以便跟
Windows
使用。
FTYPE
显示或修改用于文件扩展名关联的文件类型。
GOTO

Windows
命令解释程序指向批处理程序
中某个标明的行。
GRAFTABL
启用
Windows
来以图像模式显示
扩展字符集。
HELP
提供
Windows
命令的帮助信息。
IF
执行批处理程序中的条件性处理。
LABEL
创建、更改或删除磁盘的卷标。
MD
创建目录。
MKDIR
创建目录。
MODE
配置系统设备。
MORE
一次显示一个结果屏幕。
MOVE
将文件从一个目录移到另一个目录。
PATH
显示或设置可执行文件的搜索路径。
PAUSE
暂停批文件的处理并显示消息。
POPD
还原
PUSHD
保存的当前目录的上一个值。
PRINT
打印文本文件。
PROMPT
更改
Windows
命令提示符。
PUSHD
保存当前目录,然后对其进行更改。
RD
删除目录。
RECOVER
从有问题的磁盘恢复可读信息。
REM
记录批文件或
CONFIG.SYS
中的注释。
REN
重命名文件。
RENAME
重命名文件。
REPLACE
替换文件。
RMDIR
删除目录。
SET
显示、设置或删除
Windows
环境变量。
SETLOCAL
开始批文件中环境更改的本地化。
SHIFT
更换批文件中可替换参数的位置。
SORT
对输入进行分类。
START
启动另一个窗口来运行指定的程序或命令。
SUBST
将路径跟一个驱动器号关联。
TIME
显示或设置系统时间。
TITLE
设置
CMD.EXE
会话的窗口标题。
TREE
以图形模式显示驱动器或路径的目录结构。
TYPE
显示文本文件的内容。
VER
显示
Windows
版本。
VERIFY
告诉
Windows
是否验证文件是否已正确
写入磁盘。
VOL
显示磁盘卷标和序列号。
XCOPY
复制文件和目录树。
echo
显示文本
这样写,每条
命令
空格
参数
回车换行写下一条
最后保存成.bat文件

阅读全文

与bat文件命令大全相关的资料

热点内容
万达电影院用英语怎么说 浏览:123
伊朗人购买加密货币 浏览:373
杭州哪儿找程序员 浏览:268
警察卧底监狱韩国电影叫什么电影 浏览:607
app激活小米移动网络连接到服务器地址 浏览:84
决策树归纳算法 浏览:873
欧美以小孩为主角的电影 浏览:432
肉写得好的古言作者 浏览:187
韩国电影失踪国语在线观看 浏览:39
盗墓电影免费大全 浏览:177
内地大尺度电影 浏览:296
日历女孩女二的扮演者李熙3围 浏览:219
韩国电影弟弟帮哥哥找工作条件是嫂子在自己家 浏览:818
安卓手机怎么重新变流畅 浏览:419
佑山爱 浏览:392
可以我的小米云服务器地址 浏览:893
血恋图片 浏览:510
胖熊网站 浏览:5
电影《喜旺》完整版 浏览:365
linuxsource命令 浏览:745