• 首页>范文 > 范文
  • 批处理怎么写

    1.批处理怎么写

    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:ucdosucdos.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文件的内容。特殊命令if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。

    一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:1、if [not] "参数" == "字符串" 待执行的命令参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。

    例:if "%1"=="a" format a:2、if [not] exist [路径]文件名 待执行的命令如果有指定的文件,则条件成立,运行命令,否则运行下一句。如: if exist c:config.sys type c:config.sys表示如果存在c:config.sys文件,则显示它的内容。

    3、if errorlevel 待执行的命令很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。

    如if errorlevel 2 goto x2二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。如:goto end:endecho this is the end标号用“:字符串”来定义,标号所在行不被执行。

    三、choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令。注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。

    choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]描述: 该工具允许用户从选择列表选择一个项目并返回所选项目的索引。参数列表: /C choices 指定要创建的选项列表。

    默认列表是 "YN"。 /N 在提示符中隐藏选项列表。

    提示前面的消息得到显示, 选项依旧处于启用状态。 /CS 允许选择分大小写的选项。

    在默认情况下,这个工具 是不分大小写的。 /T timeout 做出默认选择之前,暂停的秒数。

    可接受的值是从 0 到 9999。如果指定了 0,就不会有暂停,默认选项 会得到选择。

    /D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选 项指定的一组选择中; 同时,必须用 /T 指定 nnnn。

    /M text 指定提示之前要显示的消息。如果没有指定,工具只 显示提示。

    /? 显示帮助消息。 注意: ERRORLEVEL 环境变量被设置为从选择集选择的键索引。

    列出的第一个选 择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择, 该工具会发出警告响声。

    如果该工具检测到错误状态,它会返回 255 的 ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0 的 ERRORLEVEL 值。

    在一个批程序中使用 ERRORLEVEL 参数时,将参数降 序排列。示例: 。

    2.批处理文件(.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命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。

    4.Rem 命令 注释命令,在C语言中相当与,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。 Rem Message Sample:@Rem Here is the description. 5.Pause 命令 运行 Pause 命令时,将显示下面的消息: Press any key to continue . . . Sample: @echo off :begin copy a:*.* d://back echo Please put a new disk into driver A pause goto begin 在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d://back中。

    显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。 6.Call 命令 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。

    call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。

    语法 call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 参数 [Drive: }[Path] FileName 指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。

    7.start 命令 调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。 入侵常用参数: MIN 开始时窗口最小化 SEPARATE 在分开的空间内开始 16 位 Windows 程序 HIGH 在 HIGH 优先级类别开始应用程序 REALTIME 在 REALTIME 优先级类别开始应用程序 WAIT 启动应用程序并等候它结束 parameters 这些为传送到命令/程序的参数 执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。

    如果在命令脚本内执行,该新行为则不会发生。 8.choice 命令 choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。

    使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234…… 如: choice /c:dme defrag,mem,end 将显示 defrag,mem,end[D,M,E]? Sample: Sample.bat的内容如下: @echo off choice /c:dme defrag,mem,end if errorlevel 3 goto defrag (应先判断数值最高的错误码) if errorlevel 2 goto mem if errotlevel 1 goto end :defrag c://dos//defrag goto end :mem mem goto end :end echo good bye 此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。

    9.If 命令 if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 1、if "参数" == "字符串" 待执行的命令 参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。

    (注意是两个等号) 如if "%1"=="a" format a: if { %1 }=={ } goto noparms if { %2 }=={ } goto noparms 2、if exist 文件名 待执行的命令 如果有指定的文件,则条件成立,运行命令,否则运行下一句。 如if exist config.sys edit config.sys 3、if errorlevel / if not errorlevel 数字 待执行的命令 如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。

    如if errorlevel 2 goto x2 DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。 10.for 命令 for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。

    在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable for { %variable|%%variable } in (set) do command [ CommandLineOptions] %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。

    可以使用通配符。 command 指定对。

    3.如何写批处理文件

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

    1、REM REM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。例: REM 你现在看到的就是注解,这一句将不会被执行。

    在以后的例子中解释的内容都REM 会放在REM后面。请大家注意。

    2、ECHO ECHO 是一个回显命令主要参数有OFF和 ON,一般用ECHO message来显示一个特定的消息 。例: Echo off Rem 以上代表关闭回显即不显示所执行的命令 Echo 这个就是消息。

    Rem 以上代表显示“这就是消息”这列字符 执行结果: C:>ECHO.BAT 这个就是消息。 3、GOTO GOTO 即为跳转的意思。

    在批处理中允许以“:XXX”来构建一个标号然后用GOTO :标号直接来执行标号后的命令。例 :LABEL REM 上面就是名为LABEL的标号。

    DIR C: DIR D: GOTO LABEL REM 以上程序跳转标号LABEL处继续执行。 4、CALL CALL 命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理。

    例: 批处理2.BAT内容如下: ECHO 这就是2的内容 批处理1.BAT内容如下: ECHO 这是1的内容 CALL 2.BAT ECHO 1和2的内容全部显示完成 执行结果如下: C:>1.BAT 这是1的内容 这就是2的内容 1和2的内容全部显示完成 5、PAUSE PAUSE 停止系统命令的执行并显示下面的内容。例: C:> PAUSE 请按任意键继续 . . . 6、IF IF 条件判断语句,语法格式如下: IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command 说明: [NOT] 将返回的结果取反值即“如果没有”的意思。

    ERRORLEVEL 是命令执行完成后返回的退出值 Number 退出值的数字取值范围0~255。判断时值的排列顺序应该又大到小。

    返回的值大于或等于指定的值时条件成立。 string1==string2 string1和string2都为字符的数据,英文字符的大小写将看做不同,这个条件中的等于号必须是2个(绝对相等),条件想等后即执行后面的 command EXIST filename 为文件或目录存在的意思。

    IF ERRORLEVEL这条语句必须放在某一个命令后面。执行命令后由IF ERRORLEVEL来判断命令的返回值。

    例: 1、IF [NOT] ERRORLEVEL number command 检测命令执行完后的返回值做出判断。 echo off dir z: rem 如果退出代码为1(不成功)就跳至标题1处执行 IF ERRORLEVEL 1 goto 1 rem 如果退出代码为0(成功)就跳至标题0处执行 IF ERRORLEVEL 0 goto 0 :0 echo 命令执行成功! Rem 程序执行完毕跳至标题exit处退出 goto exit :1 echo 命令执行失败! Rem 程序执行完毕跳至标题exit处退出 goto exit :exit Rem 这里是程序的出口 2、IF string1==string2 command 检测当前变量的值做出判断 ECHO OFF IF %1==2 goto no Echo 变量相等! Goto exit :no echo 变量不相等 goto exit :exit 大家可以这样看效果 C:>test.bat 数字 3、IF [NOT] EXIST filename command 发现特定的文件做出判断 echo off IF not EXIST autoexec.bat goto 1 echo 文件存在成功! goto exit :1 echo 文件不存在失败! goto exit :exit 这个批处理大家可以放在c盘和d盘分别执行看看效果。

    7、FOR FOR这个命令比较特殊是一个循环执行命令的命令,同时FOR的循环里面还可以套用FOR在进行循环。这篇我们介绍基本的用法就不做套用的循环了,后面再来讲解套用的循环。

    在批处理中FOR的命令如下: FOR [%%c] IN (set) DO [command] [arguments] 在命令行中命令如下: FOR [%c] IN (set) DO [command] [arguments] 常用参数: /L 该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列 (5 4 3 2 1)。

    /D 如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。 /F 从指定的文件中读取数据作为变量 eol=c - 指一个行注释字符的结尾(就一个) skip=n - 指在文件开始时忽略的行数。

    delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。

    tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配。

    m-n格式为一个范围。通过 nth 符号指定 mth。

    如果符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。 usebackq - 指定新语法已在下类情况中使用:在作为命令执行一个后引号的字符串并且一个单引号字符为文字字符串命令并允许在 filenameset中使用双引号扩起文件名称。

    下面来看一个例子: FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k 会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个符号传递给 for 程序体;用逗号和/或空格定界符号。请注意,这个 for 程序体的语句引用 %i 来取得第二个符号,引用 %j 来取得第三个符号,引用 %k来取得第三个符号后的所有剩余符号。

    对于带有空格的文件名,您需要用双引号将文件名括起来。为了用这种方式来使用双引号,您还需要使用 usebackq 选项,否则,双引号会。

    4.如何写批处理

    我想着里面的程序可以说是最简单,最实用的了。不要看他简单,一些简单的病毒就是用这种批处理来实现的

    当我们得到一个批处理文件的时候用记事本打开里面的代码,看上去有些简单,而且很容易懂,不过我还是想说一下,当作灌水吧.

    我们来看看命令表

    命令 功能

    CALL 用来调用另外的批处理程序

    CHOICE 使批处理程序等待某个健 (DOS6.X出现的命令)

    ECHO 显示信息或允许/禁止COMMAND.COM程序的命令回显

    FOR 对一组文件的每个文件执行命令

    GOTO 跳转到被指示的行

    IF 有条件的跳转

    PAUSE 显示信息“Press any key to continue。..”

    REM 注释或附注语句

    SHIFT 改变可置换参数的位置

    那么我们如何建立一个批处理文件呢?DOS下面是

    copy con x:name.bat在WINDOWS下面我们可以用记事本写好,然后存盘为*.BAT文件就

    可以了。下面我们来看一个功能比较齐全的批处理程序(为了大家能看懂,我用C语言个

    是的注释注意:这个注释是C语言格式的,我在这里是为了大家能看懂,如果你真的要运行,就把我的中的内容删除掉,否则出错)

    @ECHO OFF

    REM FORMAT DISK

    PAUSE

    ECHO A-格式化C:

    ECHO B-格式化D:

    ECHO.

    FORMAT B:/F:720/U

    CHOICE /C:AB 请选择

    IF ERRORLEVEL 2 GOTO FTC

    IF ERRORLEVEL 1 GOTO FTD

    IF "%1"= ="Q" GOTO QUIT

    IF "%1"= ="q" GOTO QUIT

    :FTC

    ECHO.

    FORMAT d:/F/U

    GOTO END

    :FTD

    ECHO.

    FORMAT C:/F/U

    :QUIT

    :END

    上面就是一个简单的批处理命令,相信大家也有所了解,这样大家对批处理要做哪些工作也有了一定的了解了

    5.要结束一个windows程序用批处理怎么写

    Taskkill结束一个或多个任务或进程。

    可以根据进程 ID 或图像名来结束进程。语法taskkill [/s Computer] [/u DomainUser [/p Password]]] [/fi FilterName] [/pid ProcessID]|[/im ImageName] [/f][/t] 参数/s Computer 指定远程计算机名称或 IP 地址(不能使用反斜杠)。

    默认值是本地计算机。 /u DomainUser 运行具有由 User 或 DomainUser 指定用户的帐户权限命令。

    默认值是当前登录发布命令的计算机的用户权限。 /p Password 指定用户帐户的密码,该用户帐户在 /u 参数中指定。

    /fi FilterName 指定将要终止或不终止的过程的类型。以下是有效的筛选器名称、运算符和值: 名称 运算符 值 Hostname eq, ne 任何有效字符串。

    状态 eq, ne RUNNING|NOT RESPonDING Imagename eq, ne 任何有效字符串。 PID eg, ne, gt, lt, ge, le 任何有效的正整数。

    Session eg, ne, gt, lt, ge, le 任何有效的会话数。 CPUTime eq, ne, gt, lt, ge, le hh:mm:ss 格式的有效时间。

    mm 参数和 ss 参数应在 0 到 59 之间,hh 参数可以是任何一个有效的无符号的数值。 Memusage eg, ne, gt, lt, ge, le 任何有效的整数。

    用户名 eq, ne 任何有效的用户名 ([Domain]User)。 服务 eq, ne 任何有效字符串。

    Windowtitle eq, ne 任何有效字符串。 /pid ProcessID 指定将终止的过程的过程 ID。

    /im ImageName 指定将终止的过程的图像名称。使用通配符 (*) 指定所有图像名称。

    /f 指定将强制终止的过程。对于远程过程可忽略此参数,所有远程过程都将被强制终止。

    /t 指定终止与父进程一起的所有子进程,常被认为是“树终止”。 /?在命令提示符显示帮助。

    注释只有与筛选器一起指定时,通配符 (*) 才能被接受。 无论是否指定 /f 参数,都会始终强制执行对远程过程的终止操作。

    向 HOSTNAME 筛选器提供计算机名将导致关机和中止所有过程。 使用 tasklist 确定要终止的过程的过程 ID (PID)。

    Taskkill 替代了 Kill 工具。 范例下面的范例说明如何使用 taskkill 命令:taskkill /pid 1230 /pid 1241 /pid 1253taskkill /f /fi "USERNAME eq NT AUTHORITYSYSTEM" /im notepad。

    exetaskkill /s srvmain /f /im notepad。exetaskkill /s srvmain /u maindomhiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im *taskkill /s srvmain /u maindomhiropln /fi "USERNAME ne NT*" /im *taskkill /f /fi "PID ge 1000" /im *格式化图例格式 含义 斜体 用户必须提供的信息 粗体 用户必须准确键入的要显示的元素 省略号 (。

    。)

    在命令行中可多次重复的参数 中括号 ([]) 可选项 大括号 ({});选项用竖线 (|) 分隔。例如: {even|odd} 用户必须从选项集合中选择一个 Courier 字体 代码或程序输出。

    发表评论

    登录后才能评论