2024年10月文本文档bat代码大全简单(求几个bat代码要好玩的)

 更新时间:2024-10-12

  ⑴文本文档bat代码大全简单(求几个bat代码要好玩的

  ⑵求几个bat代码要好玩的

  ⑶你看下好不好玩,我觉得好玩

  ⑷title最好别关本程序否则后果自负!

  ⑸echo处理器异常!

  ⑹ping.../n》nul

  ⑺echo正在移除C盘……

  ⑻ping.../n》nul

  ⑼echo正在移除D盘……

  ⑽echo正在移除E盘……

  ⑾echoSystemError!

  ⑿ping.../n》nul

  ⒀echo系统错误!需要关闭电脑!

  ⒁ping.../n》nul

  ⒂echo正在关闭电脑……

  ⒃ping.../n》nul

  ⒄ping.../n》nul

  ⒅ping.../n》nul

  ⒆echo哈哈哈,骗你的,什么都没发生!

  ⒇echo正在恢复系统……

  ⒈echo想吓你的而已!

  ⒉ping.../n》nul

  ⒊ping.../n》nul

  ⒋ping.../n》nul

  ⒌title命令提示符

  ⒍C:UsersAdministrator

  ⒎有些是抄别人的,别说我**。

  ⒏首先,不是一个命令,而是DOS批处理的一个特殊标记符,仅用于屏蔽命令行回显.下面是DOS命令行或批处理中可能会见到的一些特殊标记符:CR(D)命令行结束符Escape(B)ANSI转义字符引导符Space()常用的参数界定符Tab();=不常用的参数界定符+COPY命令文件连接符*?文件通配符““字符串界定符|命令管道符《》》》文件重定向符命令行回显屏蔽符/参数开关引导符:批处理标签引导符%批处理变量引导符其次,::确实可以起到rem的注释作用,而且更简洁有效;但有两点需要注意:第一,除了::之外,任何以:开头的字符行,在批处理中都被视作标号,而直接忽略其后的所有内容,只是为了与正常的标号相区别,建议使用goto所无法识别的标号,即在:后紧跟一个非字母数字的一个特殊符号.第二,与rem不同的是,::后的字符行在执行时不会回显,无论是否用echoon打开命令行回显状态,因为命令解释器不认为他是一个有效的命令行,就此点来看,rem在某些场合下将比::更为适用;另外,rem可以用于config.sys文件中.=====================echo表示显示此命令后的字符echooff表示在此语句后所有运行的命令都不显示命令行本身与echooff相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行。call调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令。pause运行此句会暂停批处理的执行并在屏幕上显示Pressanykeytocontinue...的提示,等待用户按任意键后继续rem表示此命令后的字符为解释行(注释,不执行,只是给自己今后参考用的(相当于程序中的注释。====注=====此处的描述较为混乱,不如直接引用个命令的命令行帮助更为条理-------------------------ECHO当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。在运行批处理程序时,MS-DOS一般在屏幕上显示(回显批处理程序中的命令。使用ECHO命令可关闭此功能。语法ECHO若要用echo命令显示一条命令,可用下述语法:echo参数ON|OFF指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO命令。message指定让MS-DOS在屏幕上显示的正文。-------------------CALL从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。语法CALL参数filename指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。batch-parameters指定批处理程序所需的命令行信息。-------------------------------PAUSE暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处理程序中使用该命令。语法PAUSEREM在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS中也可以用分号;代替REM命令,但在批处理文件中则不能替代。语法REM参数string指定要屏蔽的命令或要包含的注解。=======================例:用edita.bat文件,输入下列内容后存盘为c:a.bat,执行该批处理文件后可实现:将根目录中所有文件写入a.txt中,启动UCDOS,进入WPS等功能。批处理文件的内容为:命令注释:作者:...*--:回复此发言--------------------------------------------------------------------------------bat.文件的命令语法,句式或bat文件教程echooff不显示后续命令行及当前命令行dirc:*.*》a.txt将c盘文件列表写入a.txtcallc:??.bat调用ucdosecho你好显示“你好“pause暂停,等待按键继续rem准备运行wps注释:准备运行wpscducdos进入ucdos目录wps运行wps批处理文件的参数批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数,这需要用到一个参数表示符“%“。%表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab分隔的字符串。变量可以从%到%,%表示批处理命令本身,其它参数字符串用%到%顺序表示。例:C:根目录下有一批处理文件名为f.bat,内容为:echooffformat%如果执行C:》fa:那么在执行f.bat时,%就表示a:,这样format%就相当于formata:,于是上面的命令运行时实际执行的是formata:例:C:根目录下一批处理文件名为t.bat,内容为:echoofftype%type%那么运行C:》ta.txtb.txt%:表示a.txt%:表示b.txt于是上面的命令将顺序地显示a.txt和b.txt文件的内容。====注===============参数在批处理中也作为变量处理,所以同样使用百分号作为引导符,其后跟-中的一个数字构成参数引用符.引用符和参数之间(例如上文中的%与a:)的关系类似于变量指针与变量值的关系.当我们要引用第十一个或更多个参数时,就必须移动DOS的参数起始指针.shift命令正充当了这个移动指针的角色,它将参数的起始指针移动到下一个参数,类似C语言中的指针操作.图示如下:初始状态,cmd为命令名,可以用%引用cmdargargargargargargargargargarg^^^^^^^^^^||||||||||%%%%%%%%%%经过次shift后,cmd将无法被引用cmdargargargargargargargargargarg^^^^^^^^^^||||||||||%%%%%%%%%%经过次shift后,arg也被废弃,%指向为空,没有引用意义cmdargargargargargargargargargarg^^^^^^^^^|||||||||%%%%%%%%%遗憾的是,winx和DOS下均不支持shift的逆操作.只有在nt内核命令行环境下,shift才支持/n参数,可以以第一参数为基准返复移动起始指针.=================特殊命令ifgotochoicefor是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。一、if是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:、if“参数“==“字符串“待执行的命令参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。例:if“%“==“a“formata:====if的命令行帮助中关于此点的描述为:IFstring==stringmand在此有以下几点需要注意:.包含字符串的双引号不是语法所必须的,而只是习惯上使用的一种“防空“字符.string未必是参数,它也可以是环境变量,循环变量以及其他字符串常量或变量.mand不是语法所必须的,string后跟一个空格就可以构成一个有效的命令行=============================、if文件名待执行的命令如果有指定的文件,则条件成立,运行命令,否则运行下一句。如:ifexistc:config.systypec:config.sys表示如果存在c:config.sys文件,则显示它的内容。******注********也可以使用以下的用法:ifexistmanddevice是指DOS系统中已加载的设备,在win下通常有:作者:...*--:回复此发言--------------------------------------------------------------------------------bat.文件的命令语法,句式或bat文件教程AUX,PRN,CON,NUL,,,LPT,LPT,LPT,LPTXMSXXXX,EMMXXXXA:B:C:...,CLOCK$,CONFIG$,DblBuff$,IFS$HLP$具体的内容会因硬软件环境的不同而略有差异,使用这些设备名称时,需要保证以下三点:.该设备确实存在(由软件虚拟的设备除外).该设备驱动程序已加载(aux,prn等标准设备由系统缺省定义).该设备已准备好(主要是指a:b:...,...,lpt...等)可通过命令mem/d|find“device“/i来检阅你的系统中所加载的设备另外,在DOS系统中,设备也被认为是一种特殊的文件,而文件也可以称作字符设备;因为设备(device)与文件都是使用句柄(handle)来管理的,句柄就是名字,类似于文件名,只不过句柄不是应用于磁盘管理,而是应用于内存管理而已,所谓设备加载也即指在内存中为其分配可引用的句柄.==================================、iferrorlevel《数字》待执行的命令很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过iferrorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。如iferrorlevelgotox====注===========返回值从大到小的顺序排列不是必须的,而只是执行命令为goto时的习惯用法,当使用set作为执行命令时,通常会从小到大顺序排列,比如需将返回码置入环境变量,就需使用以下的顺序形式:iferrorlevelsetel=iferrorlevelsetel=iferrorlevelsetel=iferrorlevelsetel=iferrorlevelsetel=...当然,也可以使用以下循环来替代,原理是一致的:for%%ein(...)doiferrorlevel%%esetel=%%e更高效简洁的用法,可以参考我写的另一篇关于获取errorlevel的文章出现此种现象的原因是,iferrorlevel比较返回码的判断条件并非等于,而是大于等于.由于goto的跳转特性,由小到大排序会导致在较小的返回码处就跳出;而由于set命令的“重复“赋值特性,由大到小排序会导致较小的返回码“覆盖“较大的返回码.另外,虽然iferrorlevel=《数字》mand也是有效的命令行,但也只是mand.解释命令行时将=作为命令行切分符而忽略掉罢了===========================二、goto批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。如:gotoend:endechothisistheend标号用“:字符串“来定义,标号所在行不被执行。====willsort编注label常被译为“标签“,但是这并不具有广泛的约定性.goto与:联用可实现执行中途的跳转,再结合if可实现执行过程的条件分支,多个if即可实现命令的分组,类似C中switchcase结构或者Basic中的selectcase结构,大规模且结构化的命令分组即可实现高级语言中的函数功能.以下是批处理和C/Basic在语法结构上的对照:BatchC/Basicgoto&:goto&:goto&:&ifif{}&else{}/if&elseif&endifgoto&:&if...switch&case/selectcasegoto&:&if&set&envar...function()/function(),sub()==================================三、choice使用此命令可以让用户输入一个字符(用于选择,从而根据用户的选择返回不同的errorlevel,然后于iferrorlevel配合,根据用户的选择运行不同的命令。注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice/?查看用法。作者:...*--:回复此发言--------------------------------------------------------------------------------bat.文件的命令语法,句式或bat文件教程choice的命令语法(该语法为Windows中choice命令的语法,其它版本的choice的命令语法与此大同小异:CHOICE描述:该工具允许用户从选择列表选择一个项目并返回所选项目的索引。参数列表:/hoices指定要创建的选项列表。默认列表是“YN“。/N在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。/CS允许选择分大小写的选项。在默认情况下,这个工具是不分大小写的。/Ttimeout做出默认选择之前,暂停的秒数。可接受的值是从到。如果指定了,就不会有暂停,默认选项会得到选择。/Dchoice在nnnn秒之后指定默认选项。字符必须在用/C选项指定的一组选择中;同时,必须用/T指定nnnn。/Mtext指定提示之前要显示的消息。如果没有指定,工具只显示提示。/?显示帮助消息。注意:ERRORLEVEL环境变量被设置为从选择集选择的键索引。列出的第一个选择返回,第二个选择返回,等等。如果用户按的键不是有效的选择,该工具会发出警告响声。如果该工具检测到错误状态,它会返回的ERRORLEVEL值。如果用户按Ctrl+Break或Ctrl+C键,该工具会返回的ERRORLEVEL值。在一个批程序中使用ERRORLEVEL参数时,将参数降序排列。示例:CHOICE/?CHOICE/CYNC/M“确认请按Y,否请按N,或者取消请按C。“CHOICE/T/Cync/CS/DyCHOICE/Cab/M“选项请选择a,选项请选择b。“CHOICE/Cab/N/M“选项请选择a,选项请选择b。“====willsort编注===============================我列出win下choice的用法帮助,已资区分Waitsfortheusertochooseoneofasetofchoices.等待用户选择一组待选字符中的一个CHOICE/hoicesSpecifiesallowablekeys.DefaultisYN指定允许的按键(待选字符),默认为YN/NDonotdisplaychoicesand?atendofpromptstring.不显示提示字符串中的问号和待选字符/STreatchoicekeysascasesensitive.处理待选字符时大小写敏感/Tc,nnDefaultchoicetocafternnseconds在nn秒后默认选择ctextPromptstringtodisplay要显示的提示字符串ERRORLEVELissettooffsetofkeyuserpressesinchoices.ERRORLEVEL被设置为用户键入的字符在待选字符中的偏移值如果我运行命令:CHOICE/CYNC/M“确认请按Y,否请按N,或者取消请按C。“屏幕上会显示:确认请按Y,否请按N,或者取消请按C。?例:test.bat的内容如下(注意,用iferrorlevel判断返回值时,要按返回值从高到低排列:echooffchoice/Cdme/M“defrag,mem,end“iferrorlevelgotoendiferrorlevelgotomemiferrorlevelgotodefrag:defragc:dosdefraggotoend:memmemgotoend:endechogoodbye此批处理运行后,将显示“defrag,mem,end?“,用户可选择dme,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以gotoend将程序跳到end标号处,然后程序将显示goodbye,批处理运行结束。四、for循环命令,只要条件符合,它将多次执行同一命令。语法:对一组文件中的每一个文件执行某个特定命令。FOR%%variableIN(set)DOmand%%variable指定一个单一字母可替换的参数。作者:...*--:回复此发言--------------------------------------------------------------------------------bat.文件的命令语法,句式或bat文件教程(set)指定一个或一组文件。可以使用通配符。mand指定对每个文件执行的命令。mand-parameters为特定命令指定参数或命令行开关。例如一个批处理文件中有一行:for%%cin(*.bat*.txt)dotype%%c则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。====willsort编注=====================================================需要指出的是,当()中的字符串并非单个或多个文件名时,它将单纯被当作字符串替换,这个特性再加上()中可以嵌入多个字符串的特性,很明显for可以被看作一种遍历型循环.当然,在nt//xp/系列的命令行环境中,for被赋予了更多的特性,使之可以分析命令输出或者文件中的字符串,也有很多开关被用于扩展了文件替换功能.========================================================================批处理示例.IF-EXIST)首先用记事本在C:建立一个test.bat批处理文件,文件内容如下:echooffIFEXISTAUTOEXEC.BATTYPEAUTOEXEC.BATIFNOTEXISTAUTOEXEC.BATECHOAUTOEXEC.BATdoesnotexist然后运行它:C:》TEST.BAT如果C:存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。)接着再建立一个test.bat文件,内容如下:ECHOOFFIFEXIST%TYPE%IFNOTEXIST%ECHO%doesnotexist执行:C:》TESTAUTOEXEC.BAT该命令运行结果同上。说明:()IFEXIST是用来测试文件是否存在的,格式为IFEXIST命令()test.bat文件中的%是参数,DOS允许传递个批参数信息给批处理文件,分别为%~%(%表示test命令本身),这有点象编程中的实参和形参的关系,%是形参,AUTOEXEC.BAT是实参。====willsort编注=====================================================DOS没有“允许传递个批参数信息“的限制,参数的个数只会受到命令行长度和所调用命令处理能力的限制.但是,我们在批处理程序中,在同一时刻只能同时引用个参数,因为DOS只给出了%~%这十个参数引用符.========================================================================)更进一步的,建立一个名为TEST.BAT的文件,内容如下:echooffIF“%“==“A“ECHOXIAOIF“%“==“B“ECHOTIANIF“%“==“C“ECHOXIN如果运行:C:》TESTABC屏幕上会显示:XIAOTIANXIN如果运行:C:》TESTAB屏幕上会显示XIAOTIAN在这个命令执行过程中,DOS会将一个空字符串指定给参数%。、IF-ERRORLEVEL建立TEST.BAT,内容如下:ECHOOFFXCOPYC:AUTOEXEC.BATD:IFERRORLEVELECHO文件拷贝失败IFERRORLEVELECHO成功拷贝文件然后执行文件:C:》TEST如果文件拷贝成功,屏幕就会显示“成功拷贝文件“,否则就会显示“文件拷贝失败“。IFERRORLEVEL是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。因此下面的批处理文件是错误的:ECHOOFFXCOPYC:AUTOEXEC.BATD:IFERRORLEVELECHO成功拷贝文件IFERRORLEVELECHO未找到拷贝文件IFERRORLEVELECHO用户通过ctrl-c中止拷贝操作IFERRORLEVELECHO预置错误阻止文件拷贝操作IFERRORLEVELECHO拷贝过程中写盘错误无论拷贝是否成功,后面的:未找到拷贝文件用户通过ctrl-c中止拷贝操作预置错误阻止文件拷贝操作拷贝过程中写盘错误都将显示出来。以下就是几个常用命令的返回值及其代表的意义:backup备份成功未找到备份文件文件共享冲突阻止备份完成用户用ctrl-c中止备份由于致命的错误使备份操作中止diskp盘比较相同盘比较不同用户通过ctrl-c中止比较操作由于致命的错误使比较操作中止预置错误中止比较diskcopy盘拷贝操作成功非致命盘读/写错用户通过ctrl-c结束拷贝操作因致命的处理错误使盘拷贝中止预置错误阻止拷贝操作format格式化成功用户

  ⒐求一个bat批处理代码

  ⒑以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSIechooffrem全盘搜索/查找指定多级目录下的指定文件set#=Anyquestion&set=WX&set$=Q&set/az=xbebtitle%#%+%$%%$%/%%%z%set“findfile=ntbinxxxx.ini“for%%ain(ZYXWVUTSRQPONMLKJIHGFEDC)do(ifexist%%a:(echo;%%aSearching……for/f“delims=“%%bin(’dir/ad-h/b/s%%a:^》nul’)do(ifexist“%%b%findfile%“(echo;“%%b%findfile%“))))echo;%#%+%$%%$%/%%%z%pauseexit

  ⒒用文本文档编bat程序,怎么做

  ⒓批处理就是把dos命令行的一行行命令集中在一块执行,形成一段具有特殊功能的程序.下面有一个批处理的例子,可以帮助你理解从某种意义上说,批处理就是一种编程,可以实现一些用软件才可以实现的简单功能。批处理(Batch是一种简化的脚本语言,它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是MAND.或者CMD.EXE解释运行。类似于Unix中的Shell脚本。批处理文件具有.bat或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何位的Windows程序都可以放在批处理文件中运行。给你举个批处理的例子:.新建一个文本文档,将下面代码拷贝进去echooff:mainclscolorbtitle邮箱登陆器echo.&echo.set/pUsername=请输入邮箱用户名:&echo.&echo.&set/pPassword=请输入邮箱密码:start有了这段代码,登陆邮箱就不用打开网页了,有时候还可以把账号密码嵌入再里面,然后再把它复制到开机启动项里,开机就自动登陆邮箱,岂不是很爽

  ⒔.bat是dos下的批处理文件.cmd是nt内核命令行环境的另一种批处理文件批处理命令批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件,扩展名为.BAT。当在命令提示符下敲入批处理程序的名称时,MS-DOS成组执行此批处理程序中的命令。任何在命令提示符下可使用的命令都可用在批处理程序中。此外,下面MS-DOS命令是专门在批处理程序中使用的。==========常用命令echo、、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。====willsort编注===========首先,不是一个命令,而是DOS批处理的一个特殊标记符,仅用于屏蔽命令行回显.下面是DOS命令行或批处理中可能会见到的一些特殊标记符:CR(D)命令行结束符Escape(B)ANSI转义字符引导符Space()常用的参数界定符Tab();=不常用的参数界定符+COPY命令文件连接符*?文件通配符““字符串界定符|命令管道符《》》》文件重定向符命令行回显屏蔽符/参数开关引导符:批处理标签引导符%批处理变量引导符其次,::确实可以起到rem的注释作用,而且更简洁有效;但有两点需要注意:第一,除了::之外,任何以:开头的字符行,在批处理中都被视作标号,而直接忽略其后的所有内容,只是为了与正常的标号相区别,建议使用goto所无法识别的标号,即在:后紧跟一个非字母数字的一个特殊符号.第二,与rem不同的是,::后的字符行在执行时不会回显,无论是否用echoon打开命令行回显状态,因为命令解释器不认为他是一个有效的命令行,就此点来看,rem在某些场合下将比::更为适用;另外,rem可以用于config.sys文件中.=====================echo表示显示此命令后的字符echooff表示在此语句后所有运行的命令都不显示命令行本身与echooff相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行。call调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令。pause运行此句会暂停批处理的执行并在屏幕上显示Pressanykeytocontinue...的提示,等待用户按任意键后继续rem表示此命令后的字符为解释行(注释,不执行,只是给自己今后参考用的(相当于程序中的注释。====willsort编注=====此处的描述较为混乱,不如直接引用个命令的命令行帮助更为条理-------------------------ECHO当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。在运行批处理程序时,MS-DOS一般在屏幕上显示(回显批处理程序中的命令。使用ECHO命令可关闭此功能。语法ECHO若要用echo命令显示一条命令,可用下述语法:echo参数ON|OFF指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO命令。message指定让MS-DOS在屏幕上显示的正文。-------------------CALL从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。语法CALL参数filename指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。batch-parameters指定批处理程序所需的命令行信息。-------------------------------PAUSE暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处理程序中使用该命令。语法PAUSEREM在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS中也可以用分号(;)代替REM命令,但在批处理文件中则不能替代。语法REM参数string指定要屏蔽的命令或要包含的注解。=======================例:用edita.bat文件,输入下列内容后存盘为c:a.bat,执行该批处理文件后可实现:将根目录中所有文件写入a.txt中,启动UCDOS,进入WPS等功能。批处理文件的内容为:命令注释:echooff不显示后续命令行及当前命令行dirc:*.*》a.txt将c盘文件列表写入a.txtcallc:??.bat调用ucdosecho你好显示“你好“pause暂停,等待按键继续rem准备运行wps注释:准备运行wpscducdos进入ucdos目录wps运行wps批处理文件的参数批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数,这需要用到一个参数表示符“%“。%表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab分隔的字符串。变量可以从%到%,%表示批处理命令本身,其它参数字符串用%到%顺序表示。例:C:根目录下有一批处理文件名为f.bat,内容为:echooffformat%如果执行C:》fa:那么在执行f.bat时,%就表示a:,这样format%就相当于formata:,于是上面的命令运行时实际执行的是formata:例:C:根目录下一批处理文件名为t.bat,内容为:echoofftype%type%那么运行C:》ta.txtb.txt%:表示a.txt%:表示b.txt于是上面的命令将顺序地显示a.txt和b.txt文件的内容。====willsort编注===============参数在批处理中也作为变量处理,所以同样使用百分号作为引导符,其后跟-中的一个数字构成参数引用符.引用符和参数之间(例如上文中的%与a:)的关系类似于变量指针与变量值的关系.当我们要引用第十一个或更多个参数时,就必须移动DOS的参数起始指针.shift命令正充当了这个移动指针的角色,它将参数的起始指针移动到下一个参数,类似C语言中的指针操作.图示如下:初始状态,cmd为命令名,可以用%引用cmdargargargargargargargargargarg^^^^^^^^^^||||||||||%%%%%%%%%%经过次shift后,cmd将无法被引用cmdargargargargargargargargargarg^^^^^^^^^^||||||||||%%%%%%%%%%经过次shift后,arg也被废弃,%指向为空,没有引用意义cmdargargargargargargargargargarg^^^^^^^^^|||||||||%%%%%%%%%遗憾的是,winx和DOS下均不支持shift的逆操作.只有在nt内核命令行环境下,shift才支持/n参数,可以以第一参数为基准返复移动起始指针.====================特殊命令ifgotochoicefor是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。一、if是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:、if“参数“==“字符串“待执行的命令参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。例:if“%“==“a“formata:====willsort编注if的命令行帮助中关于此点的描述为:IFstring==stringmand在此有以下几点需要注意:.包含字符串的双引号不是语法所必须的,而只是习惯上使用的一种“防空“字符.string未必是参数,它也可以是环境变量,循环变量以及其他字符串常量或变量.mand不是语法所必须的,string后跟一个空格就可以构成一个有效的命令行=============================、if文件名待执行的命令如果有指定的文件,则条件成立,运行命令,否则运行下一句。如:ifexistc:config.systypec:config.sys表示如果存在c:config.sys文件,则显示它的内容。******willsort编注********也可以使用以下的用法:ifexistmanddevice是指DOS系统中已加载的设备,在win下通常有:AUX,PRN,CON,NUL,,,LPT,LPT,LPT,LPTXMSXXXX,EMMXXXXA:B:C:...,CLOCK$,CONFIG$,DblBuff$,IFS$HLP$具体的内容会因硬软件环境的不同而略有差异,使用这些设备名称时,需要保证以下三点:.该设备确实存在(由软件虚拟的设备除外).该设备驱动程序已加载(aux,prn等标准设备由系统缺省定义).该设备已准备好(主要是指a:b:...,...,lpt...等)可通过命令mem/d|find“device“/i来检阅你的系统中所加载的设备另外,在DOS系统中,设备也被认为是一种特殊的文件,而文件也可以称作字符设备;因为设备(device)与文件都是使用句柄(handle)来管理的,句柄就是名字,类似于文件名,只不过句柄不是应用于磁盘管理,而是应用于内存管理而已,所谓设备加载也即指在内存中为其分配可引用的句柄.==================================、iferrorlevel《数字》待执行的命令很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过iferrorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。如iferrorlevelgotox====willsort编注===========返回值从大到小的顺序排列不是必须的,而只是执行命令为goto时的习惯用法,当使用set作为执行命令时,通常会从小到大顺序排列,比如需将返回码置入环境变量,就需使用以下的顺序形式:iferrorlevelsetel=iferrorlevelsetel=iferrorlevelsetel=iferrorlevelsetel=iferrorlevelsetel=...当然,也可以使用以下循环来替代,原理是一致的:for%%ein(...)doiferrorlevel%%esetel=%%e更高效简洁的用法,可以参考我写的另一篇关于获取errorlevel的文章出现此种现象的原因是,iferrorlevel比较返回码的判断条件并非等于,而是大于等于.由于goto的跳转特性,由小到大排序会导致在较小的返回码处就跳出;而由于set命令的“重复“赋值特性,由大到小排序会导致较小的返回码“覆盖“较大的返回码.另外,虽然iferrorlevel=《数字》mand也是有效的命令行,但也只是mand.解释命令行时将=作为命令行切分符而忽略掉罢了===========================二、goto批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。如:gotoend:endechothisistheend标号用“:字符串“来定义,标号所在行不被执行。====willsort编注label常被译为“标签“,但是这并不具有广泛的约定性.goto与:联用可实现执行中途的跳转,再结合if可实现执行过程的条件分支,多个if即可实现命令的分组,类似C中switchcase结构或者Basic中的selectcase结构,大规模且结构化的命令分组即可实现高级语言中的函数功能.以下是批处理和C/Basic在语法结构上的对照:BatchC/Basicgoto&:goto&:goto&:&ifif{}&else{}/if&elseif&endifgoto&:&if...switch&case/selectcasegoto&:&if&set&envar...function()/function(),sub()==================================三、choice使用此命令可以让用户输入一个字符(用于选择,从而根据用户的选择返回不同的errorlevel,然后于iferrorlevel配合,根据用户的选择运行不同的命令。注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice/?查看用法。choice的命令语法(该语法为Windows中choice命令的语法,其它版本的choice的命令语法与此大同小异:CHOICE描述:该工具允许用户从选择列表选择一个项目并返回所选项目的索引。参数列表:/hoices指定要创建的选项列表。默认列表是“YN“。/N在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。/CS允许选择分大小写的选项。在默认情况下,这个工具是不分大小写的。/Ttimeout做出默认选择之前,暂停的秒数。可接受的值是从到。如果指定了,就不会有暂停,默认选项会得到选择。/Dchoice在nnnn秒之后指定默认选项。字符必须在用/C选项指定的一组选择中;同时,必须用/T指定nnnn。/Mtext指定提示之前要显示的消息。如果没有指定,工具只显示提示。/?显示帮助消息。注意:ERRORLEVEL环境变量被设置为从选择集选择的键索引。列出的第一个选择返回,第二个选择返回,等等。如果用户按的键不是有效的选择,该工具会发出警告响声。如果该工具检测到错误状态,它会返回的ERRORLEVEL值。如果用户按Ctrl+Break或Ctrl+C键,该工具会返回的ERRORLEVEL值。在一个批程序中使用ERRORLEVEL参数时,将参数降序排列。示例:CHOICE/?CHOICE/CYNC/M“确认请按Y,否请按N,或者取消请按C。“CHOICE/T/Cync/CS/DyCHOICE/Cab/M“选项请选择a,选项请选择b。“CHOICE/Cab/N/M“选项请选择a,选项请选择b。“====willsort编注===============================我列出win下choice的用法帮助,已资区分Waitsfortheusertochooseoneofasetofchoices.等待用户选择一组待选字符中的一个CHOICE/hoicesSpecifiesallowablekeys.DefaultisYN指定允许的按键(待选字符),默认为YN/NDonotdisplaychoicesand?atendofpromptstring.不显示提示字符串中的问号和待选字符/STreatchoicekeysascasesensitive.处理待选字符时大小写敏感/Tc,nnDefaultchoicetocafternnseconds在nn秒后默认选择ctextPromptstringtodisplay要显示的提示字符串ERRORLEVELissettooffsetofkeyuserpressesinchoices.ERRORLEVEL被设置为用户键入的字符在待选字符中的偏移值====================================如果我运行命令:CHOICE/CYNC/M“确认请按Y,否请按N,或者取消请按C。“屏幕上会显示:确认请按Y,否请按N,或者取消请按C。?例:test.bat的内容如下(注意,用iferrorlevel判断返回值时,要按返回值从高到低排列:echooffchoice/Cdme/M“defrag,mem,end“iferrorlevelgotoendiferrorlevelgotomemiferrorlevelgotodefrag:defragc:dosdefraggotoend:memmemgotoend:endechogoodbye此批处理运行后,将显示“defrag,mem,end?“,用户可选择dme,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以gotoend将程序跳到end标号处,然后程序将显示goodbye,批处理运行结束。四、for循环命令,只要条件符合,它将多次执行同一命令。语法:对一组文件中的每一个文件执行某个特定命令。FOR%%variableIN(set)DOmand%%variable指定一个单一字母可替换的参数。(set)指定一个或一组文件。可以使用通配符。mand指定对每个文件执行的命令。mand-parameters为特定命令指定参数或命令行开关。例如一个批处理文件中有一行:for%%cin(*.bat*.txt)dotype%%c则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。

  ⒕好了,先来几个实用的。命令代码如下:echooffecho正在清除系统垃圾文件,请稍等......del/f/s/q%systemdrive%*.tmpdel/f/s/q%systemdrive%*._mpdel/f/s/q%systemdrive%*.logdel/f/s/q%systemdrive%*.giddel/f/s/q%systemdrive%*.chkdel/f/s/q%systemdrive%*.olddel/f/s/q%systemdrive%

  ⒖ecycled*.*del/f/s/q%windir%*.bakdel/f/s/q%windir%prefetch*.*rd/s/q%windir% emp&md%windir% empdel/f/q?rofile%cookies*.*del/f/q?rofile%

  ⒗ecent*.*del/f/s/q?rofile%LocalSettingsTemporaryInterFiles*.*del/f/s/q?rofile%LocalSettingsTemp*.*del/f/s/q?rofile%

  ⒘ecent*.*echo清除系统垃圾文件完成!pauseechooff::判断本地连接赋值afor/ftokens=,delims==%%iin(’ipconfig^|findstr/r本’)doecho%%i%%j》DNS.txtfor/ftokens=delims==:%%din(DNS.txt)doseta=%%decho请根据实际情况更改下面三行setslection=set/pslection=请输入IP地址:shinterfaceipsetaddressname=%a%source=staticaddr=%slection%mask=...setslection=set/pslection=请输入网关地址:shinterfaceipsetaddressname=%a%gateway=%slection%gwmetric=setslection=set/pslection=请输入主dns地址shinterfaceipsetdnsname=%a%source=staticaddr=%slection%register=PRIMARYsetslection=set/pslection=请输入备份dns地址shinterfaceipadddnsname=%a%addr=%slection%shinterfaceipsetwinsname=%a%source=staticaddr=nonedelDNS.txtexit改完IP后可用这个完成本机ARP的绑定:echooffifexistipconfig.txtdelipconfig.txtipconfig/all》ipconfig.txtifexistphyaddr.txtdelphyaddr.txtfindPhysicalAddressipconfig.txt》phyaddr.txtfor/fskip=tokens=%%Min(phyaddr.txt)dosetMac=%%MifexistIPAddr.txtdelIPaddr.txtfindIPAddressipconfig.txt》IPAddr.txtfor/fskip=tokens=%%Iin(IPAddr.txt)dosetIP=%%Iarp-s%IP%%Mac%delipaddr.txtdelipconfig.txtdelphyaddr.txtexit同时修改IP和MAC地址的小代码及制作步骤,用于带着本本到处跑又要改IP的场合!:生成IP配置文件。修改你的IP地址配置为某一个配置,例如配置。修改好:IP,MASK,DNS,GATE等(主要是IP相关的,不需要修改MAC地址。然后输入:sh-cinterfacedump》c:

  ⒙et.txt这里.txt就是你生成的IP配置文件了!可以改为其它的文件名,比如:实验室,寝室!依次生成所有的网络配置的配置文件,我假设一共生成两个网络配置分别为.txt和.txt:下载软件SMAC为修改MAC地址的小软件仅K,我已经上传了。:在C盘根目录下建立一个目录,把刚才下载的smac.exe,生成的所有的网络配置文件.txt,.txt等,等一下要建立的两个批处理文件(bat)也都放要放到这里。我假设为这个目录是:C:cmd:建立一个批处理文件,假设为:To.bat(可以使用记事本,不过注意保存的时候要加上用加上引号的文件名才能保存为To.bat,否则就是To.bat.txt输入如下代码:smac-modifymacBADAsh-f.txt.txt就是你要设置的某一个网络的配置,BADA这个要替换为对应这一个网络配置的MAC地址。另外BADA前面的不可以省略,这个表示网卡(你不会有两个或者多个网卡吧?如果你有,请注意自己先试一下看是哪一个网卡了:在这个smac程序的readme中有list功能,你可以判断一下。同样的方法,建立To.bat,当然修改网络配置文件为.txt和mac地址的属性了。把这两个bat文件也放到c:cmd目录中。:然后你可以建立这两个bat文件的快捷方式,双击一下自动更换了!不过请注意,修改MAC地址可能需要重新启动一下网卡比较好(禁用再启用shutdown-s-t运行这个后,立刻关机想要重启,就把-s改为-rregaddHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem/vDisableRegistryTools/treg_dword/d/fregaddHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem/vDisableRegistryTools/treg_dword/d/fstartregeditregaddHKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced/vHidden/treg_dword/d/fregaddHKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced/vHideFileExt/treg_dword/d/fregaddHKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced/vShowSuperHidden/treg_dword/d/fREGADDHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem/VDisableTaskMgr/tREG_DWORD/d/fREGADDstem/VDisableTaskMgr/tREG_DWORD/d/f解释:这五个都是通过改注册表做到的。接下来搞几个用密码的。echooffmodeconcols=lines=setb=:pwdtitlePasswordset/aa=%a%+set/ab=%b%-set/ppwd=EnterPassword:if/I%pwd%==Passwordgotomainif/I%a%==gotoerrechoError%a%times!Youhave%b%timesleftnow.gotopwd:errcolormodeconcols=lines=titleError!clsecho.echoErrortimes,itwillexit!ping.-n》nulexit:mainmodeconcols=lines=echoPasswordright!pauseclsgotoprogram:programmodeconcols=lines=::Yourprogramhere.::解释:把第九行的Password改成密码。echooffecho.echo正在建立用于锁住命令行窗口的lockcmd.bat批处理文件,请稍侯......echo.echo.》lockcmd.batechoechooff》lockcmd.batechoecho.》》lockcmd.batechosetlocal》》lockcmd.batechoset/atimes=》》lockcmd.batecho:checkpassword》》lockcmd.batechoset/ppassword=请输入密码:》》lockcmd.batechoset/atimes=times-》》lockcmd.batechoif%%password%%==密码gotocontinue》》lockcmd.batechoif%%times%%==gotoexit》》lockcmd.batechoecho输入的密码不正确,请重新输入,还有%%times%%次机会!》》lockcmd.batechogotocheckpassword》》lockcmd.batecho:exit》》lockcmd.batechoecho.》》lockcmd.batechoecho你无权进入命令行状态!》》lockcmd.batechoexit》》lockcmd.batecho:continue》》lockcmd.batechocls》》lockcmd.batechotitle欢迎你回到命令行窗口工作!!!》》lockcmd.batechocd/dc:》》lockcmd.batechoendlocal》》lockcmd.batcopylockcmd.bat%windir%echo正在设置注册表,从而让命令行窗口一打开便进入锁定状态......echoWindowsRegistryEditorVersion.》temp.regecho》》temp.regechoAutoRun=lockcmd.bat》》temp.regecho成功锁住命令行,只有输入正确的密码才可使用!regedit/stemp.regdel/q/ftemp.reg》nuldel/q/flockcmd.bat》nulpause》nul解释:这两个把“密码”改成你要输的密码就行了。嗯,接下来是几个整人的。HQ声明:使用这些代码造成的后果(比如别人找你麻烦自负。首先是个吓唬人的。--------为维护网络安全以下代码已删除-------注意,这个要慎用!!!!!echooffset/pt=请输入您要修改的密码:user计算机名%t%echo修改成功!在计算机名处写电脑登录时的账号比如:useradministrator%t%嗯,代码就列举到这里,大家可以自己编一些哦。

  ⒚求文本多行并一行的BAT代码

  ⒛不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件放一起双击运行

  echo?off&cd?/d?“%~dp“&mode?con?lines=rem?将当前目录下的每一个txt文本文件里的多行内容删除换行后合并成一行set?#=Any?question&set?_=WX&set?$=Q&set/az=xbebtitle?%#%?+%$%%$%/%_%?%z%》“%tmp%j.j“?echo;try{WSH.StdErr.WriteLine(WSH.StdIn.ReadAll().replace(/+/g,’’));}catch(e){}for?/f?“delims=“?%%a?in?(’dir?/a-d-h/b?*.txt’)?do?(????type?“%%~a“|cscript?-nologo?-e:jscript?“%tmp%j.j“)echo;%#%?+%$%%$%/%_%?%z%pauseexit

  如何编写简单的bat文件

  打开记事本,输入:dirpause然后点击文件,另存为,保存类型选择:所有文件,然后输入文件名:aa.bat,点击确定。简单的BAT文件就创建好了,点击即可运行,显示当前目录里的文件。

您可能感兴趣的文章:

相关文章