Board logo

标题: [推荐]批处理的教学 [打印本页]

作者: 如是大师     时间: 2003-5-4 00:00    标题: [推荐]批处理的教学

(批处理文件是由一个或一个以上的DOS命令及可执行命令组成的带有扩展名.BAT的文件。当用户以批处理文件名为命令时,DOS会自动依次执行文件中的命令。批处理文件的特点是一次建立可多次执行。

在批处理文件中有一个特殊的批处理文件,每次启动计算机时,系统自动执行该文件中的每一条命令。该文件必须满足两个条件:一是文件名为AUTOEXEC.BAT,二是该文件的位置必须放在启动盘(也可称为系统盘)的根目录下。

在批处理文件中除了使用DOS命令之外,还可使用批处理子命令,这些命令也可看作DOS的内部命令,它们是:

1)ECHO--显示方式设置;其中ECHO ON是使以后的命令在执行前先显示,ECHO OFF是使以后的命令在执行前不显示,ECHO MASSAGE 是不论ECHO的状态为ON或OFF,都显示MESSAGE所指定的信息。

2)REM--注释命令。

3)PAUSE--暂停系统处理,系统显示Press any key to continue…,等待用户按任意一个键后继续执行。

4)GOTO--转向子命令。

5)IF--条件子命令。

6)FOR--循环子命令。

7)SHIFT--改变参数的位置。




电脑每次启动时都会寻找autoexec.bat这条批处理文件,从而可执行一些每次开机都要执行的命令,如设置路径path、加载鼠标驱动mouse、磁盘加速smartdrv等,可以使您的电脑真正自动化。


  echo、@、call、pause、rem 是批处理文件最常用的几个命令,我们就从他们开始学起。 echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@ 与echo off相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身。
call 调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完那条文件后将无法执行当前文件后续命令)
pause 运行此句会暂停,显示Press any key to continue... 等待用户按任意键后继续
rem 表示此命令后的字符为解释行,不执行,只是给自己今后查找用的

  例:用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语言一样使用参数,这只需用到一个参数表示符%。

   %表示参数,参数是指在运行批处理文件时在文件名后加的字符串。变量可以从 %0到%9,%0表示文件名本身,字符串用%1到%9顺序表示。

  例如,C:根目录下一批处理文件名为f.bat,内容为 format %1

  则如果执行C:\>f a:    则实际执行的是format a:

  又如C:根目录下一批处理文件的名为t.bat,内容为 type %1 type %2

  那么运行C:\>t a.txt b.txt 将顺序地显示a.txt和b.txt文件的内容


  if goto choice for 是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。
if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
1、if "参数" == "字符串"  待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
如if "%1"=="a" format a:

2、if exist 文件名  待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。如if exist config.sys edit config.sys

3、if errorlevel 数字  待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。如if errorlevel 2 goto x2  DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码

goto 批处理文件运行到这里将跳到goto 所指定的标号处, 一般与if配合使用。 如:

goto end

:end
echo this is the end

标号用 :字符串 表示,标号所在行不被执行

choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……

如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?

例如,test.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,文件结束。

for 循环命令,只要条件符合,它将多次执行同一命令。

格式FOR [%%f] in (集合) DO [命令]
只要参数f在指定的集合内,则条件成立,执行命令

如果一条批处理文件中有一行:
for %%c in (*.bat *.txt) do type %%c
含义是如果是以bat或txt结尾的文件,则显示文件的内容。


   DOS在启动会自动运行autoexec.bat这条文件,一般我们在里面装载每次必用的程序,如: path(设置路径)、smartdrv(磁盘加速)、 mouse(鼠标启动)、mscdex(光驱连接)、 doskey(键盘管理)、set(设置环境变量)等。

  如果启动盘根目录中没有这个文件,电脑会让用户输入日期和时间。

  例如,一个典型的autoexec.bat内容如下:

@echo off                     不显示命令行

prompt $p$g                    设置提示符前有目录提示

path c:\dos;c:\;c:\windows;c:\ucdos;c:\tools    设置路径

lh c:\dos\doskey.com                加载键盘管理

lh c:\mouse\mouse.com               加载鼠标管理

lh c:\dos\smartdrv.exe               加载磁盘加速管理

lh c:\dos\mscdex /S /D:MSCD000 /M:12 /V      加载CD-ROM驱动

set temp=c:\temp                  设置临时目录
作者: 如是大师     时间: 2003-5-4 00:00
一些危险的命令会被某些有心人写进批处理文件中去,在网上四处传播搞破坏,例如在.bat中写进:

  deltree -y c:兡

  接下来的事情就是你赶紧拿条手巾擦眼泪吧。从这个意义上说它比病毒还要恶毒。

  类似的,在.hlp(帮助文件)、.pif(指向DOS的快捷方式)、.lnk(WINDOWS快捷方式)这些文件中也可以写入危险的命令,如果不小心执行了那就危险了。防范以上调用DOS命令进行破坏的文件,被动的做法是通过将format、deltree这类命令改名换姓。




(一)应用DOS重定向功能

DOS的标准输入输出通常是在标准设备键盘和显示器上进行的, 利用重定向,可以方便地将输入输出改向磁盘文件或其它设备。如在批处理命令执行期间为了禁止命令或程序执行后输出信息而扰乱屏幕, 可用DOS重定向功能把输出改向NUL设备(NUL不指向任何实际设备): C:\>COPY A.TXT B.TXT > NUL。

命令执行结束不显示"1 file(s) copied"的信息。有的交互程序在执行时要求很多键盘输入, 但有时输入是固定不变的, 为加快运行速度, 可预先建立一个输入文件,此文件的内容为程序的键盘输入项, 每个输入项占一行。假如有一个程序ZB, 其输入项全部包括在文件IN.DAT中, 执行 C:\>ZB NUL 程序就自动执行。

(二)应用DOS管道功能

DOS的管道功能是使一个程序或命令的标准输出用做另一个程序或命令的标准输入。如把DEBUG的输入命令写入文件AAA, 用TYPE命令通过管道功能将AAA的内容传输给DEBUG, 在DEBUG执行期间不再从控制台索取命令参数, 从而提高了机器效率。命令为: C:\>TYPE AAA|DEBUG >BBB。

(三)子程序

在一个批处理文件可用CALL命令调用另一个子批处理文件, 当子批文件执行结束后,自动返回父批文件, 继续向下执行。如: A.BAT B.BAT,A调用B,A.BAT内容如下:

@ECHO OFF
CALL B
CD \BASIC
BASICA BG
@ECHO ON

(四)菜单选择功能

DOS功能调用31H或4CH所提供的一字节的返回码, 通过批处理子命令IF和ERRORLEVEL对返回码进行处理, 可达到自动执行一批命令的目的。在批处理文件中实现高级语言所有的菜单提示功能, 使批处理文件变得更灵活方便。先用DEBUG建立一个菜单驱动程序MENU.COM,对应地编写一个批处理文件LG.BAT。具体内容和方法见下表:

DEBUG
-A
-166C:0100 MOV DX,111
-166C:0103 MOV AH,09
-166C:0105 INT 21
-166C:0107 MOV AH,01
-166C:0109 INT 21
-166C:010B MOV AH,4C
-166C:010D INT 21
-166C:010F INT 20
-166C:0111 DB '******************************'0D 0A
-166C:0131 DB '* 1.Turbo Pascal 5.00 *'0D 0A
-166C:0151 DB '* 2.Turbo Basci 1.00 *'0D 0A
-166C:0171 DB '* 3.Turbo Prolog 2.00 *'0D 0A
-166C:0191 DB '* 4.Turbo C 2.00 *'0D 0A
-166C:01B1 DB '* 0.Exit *'0D 0A
-166C:01B1 DB '******************************'0D 0A
-166C:01F1 DB 'Your choice(0..4) : '24 0D 0A 1A
-166C:0209
-R CX
CX 0000
:108
-N MENU.COM
-W
Writing 0108 bytes
-Q
@ECHO OFF:
START
CLS
MENU
IF ERRORLEVEL 52 GOTO C
IF ERRORLEVEL 51 GOTO PRO
IF ERRORLEVEL 50 GOTO BAS
IF ERRORLEVEL 49 GOTO PAS
IF ERRORLEVEL 48 GOTO EX
CLS
GOTO START
:PAS
CD \TP5.00
TURBO
CD \
GOTO START
:BAS
CD \TB
TB
CD \
GOTO START
:PRO
CD \TPROLOG
PROLOG
CD \
GOTO START
:C
CD \TURBOC
TC
CD \
GOTO START
:EX
@ECHO ON


执行LG, 屏幕左上角出现一个菜单, 并提示用户输入选择, 当选择的功能执行结束,重新返回主菜单请求选择, 直到选择"0"号功能, 程序结束返回DOS。

(五)应用命令处理程序完成大量重复工作

DOS提供调用次级命令程序的方法, 可实现与子程序等效的功能, 在MS DOS3.3以前的DOS版本下非常有用。如你有一批FORTRAN源程序需要编译, 首先编写两个批文件MAKEOBJ.BAT、C.BAT, 然后执行MAKEOBJ, 即可把当前目录下的所有扩展名为.FOR的FORTRAN源程序编译成OBJ文件。这种方法迅速正确, 人机交互少, 减轻了程序员的的大量劳动。

MAKEOBJ.BAT C.BAT
@ECHO OFF
ECHO COMPILE FORTRAN PROGRAMS.
FOR %%A IN (*.FOR) DO COMMAND /C C %%A
ECHO FINISH !
@ECHO ON @ECHO OFF
ECHO ------ COMPILE %1 ------
FOR1 %1; >NUL
FOR2 >NUL
@ECHO ON
作者: 龙卷风     时间: 2003-5-4 00:00
第一篇贴子我会,请问如是大师,第二篇贴子的内容是哪里的?有没有这方面的书籍?
作者: 如是大师     时间: 2003-5-4 00:00
这是我以前收录的具体来源就记不太清了。
完整的书籍目前我还没见到。。。。。。。。。都是些零星的资料。
作者: 柏仔     时间: 2003-5-5 00:00
学到东西
作者: myd5g     时间: 2003-5-6 00:00
有用
作者: tanglu_sd     时间: 2003-5-6 00:00
谢谢,正需要!
作者: seegoodlili     时间: 2003-5-8 00:00
学到东西 了,谢谢!
作者: linjun     时间: 2003-5-8 00:00
good!
作者: wymacu     时间: 2003-5-16 00:00
前面的内容是WPS的
作者: zgzjwz     时间: 2004-5-18 00:00
呵呵 先顶上 ! 等浏览完这个论坛的全部帖子后再逐个收藏!!!
作者: SagInvoker     时间: 2004-5-23 00:00
可能是因为我比较菜吧,对于第二张帖子里做菜单那项我有一点不是很懂,为什么调用了中断21的4C以后还要调中断20呢?是不是有点多余,或者别有原因???
作者: 令狐清扬     时间: 2004-5-24 00:00
对批处理文件多少有点了解,期待更多的,更全面的内容出现,谢谢楼主~
作者: bush     时间: 2004-5-24 00:00
请问符号 #  在批处理中有什么作用?


我就这个不懂~

另外我的系统盘WIN98是E盘, C:、E:都有这个AUTOEXEC.BAT

作者: SagInvoker     时间: 2004-5-24 00:00
没听说#还有什么特殊作用的,如果是LINUX还可以说表示当前SHELL是BASH,DOS就没什么意思了,你联系全文看就懂了,肯定是个自定义的变量值
作者: SagInvoker     时间: 2004-5-24 00:00
有人听到了我的问题吗?我一直没搞懂INT 20 和INT 21的4C有什么区别,就知道4C要好那么一点,但是为什么教学贴里那个DEBUG用了4C之后还要用INT 20,有谁能回答我吗?
作者: 谈笑风生123     时间: 2004-5-25 00:00
非常好,学到很多
作者: zhangmn     时间: 2004-5-28 00:00
不错呀。这是我需要的 谢谢

作者: bush     时间: 2004-5-28 00:00
两点问题:
choice 应该是一个外部命令吧?不是所有的机器都可以用此命令的……


另:
C.BAT
@ECHO OFF
ECHO ------ COMPILE %1 ------
FOR1 %1; >NUL                    ;这两条命令是什么意思?
FOR2 >NUL                           ;我怎么看也不通顺啊!
@ECHO ON


作者: 金雕     时间: 2004-6-1 00:00
请问有没有相关的书籍介绍批处理?
作者: bush     时间: 2004-6-2 00:00
汇编那个内容我在DEBUG中怎么运行不了啊?
作者: linux1234     时间: 2004-7-13 00:00
嗯,我正想看看
作者: Wengier     时间: 2005-12-12 02:20
看来本帖仍很有价值,现重新置顶。
作者: dahe     时间: 2005-12-12 10:20
谢谢!!!
作者: 人类     时间: 2005-12-15 03:03


  Quote:
Originally posted by 龙卷风 at 2003-5-4 00:00:
第一篇贴子我会,请问如是大师,第二篇贴子的内容是哪里的?有没有这方面的书籍?

94年上大学学的DOS基础课,几乎全有,可惜我的课本被同学借走不还了,幸好我学得很扎实。
还有就是看DOS6.22自带的help,很完整。

[ Last edited by 人类 on 2005-12-15 at 03:09 ]
作者: flamey     时间: 2005-12-17 15:13
哈~~~我的DOS都是自己学的!
作者: sxxljq     时间: 2005-12-26 15:42
感激地话都不知道怎么说了,是楼主让我在茫然中找到了这篇文章,真心的感谢你!
作者: 人类     时间: 2005-12-27 02:42


  Quote:
Originally posted by bush at 2004-5-28 00:00:
两点问题:
choice 应该是一个外部命令吧?不是所有的机器都可以用此命令的……


另:
C.BAT
@ECHO OFF
ECHO ------ COMPILE %1 ------
FOR1 %1; >NUL        ...

choice是个外部命令,在2000和XP中推荐用SET,set是内部命令;如果你的批处理在98、xp下都要用,那么应先用环境变量检测OS版本,再分支选用choice或set。
FOR1 和 FOR2 应是两个程序的名字。

[ Last edited by 人类 on 2005-12-27 at 02:50 ]
作者: dfdb     时间: 2005-12-27 15:40
谢谢共享!
作者: zhzhsmc     时间: 2006-3-14 22:10
收藏了。。。。
作者: jweng     时间: 2006-3-16 15:45
学习了!!!!!
作者: yeFriend     时间: 2006-3-24 21:01
谢谢楼主,需然对批处理知道一点,但还需要更多的知识。
作者: ruanylai     时间: 2006-3-25 15:05
不错,给你个面子,顶了
作者: zhzhy     时间: 2006-4-5 18:57
有用,谢谢楼主。辛苦
作者: aldenfish     时间: 2006-4-8 16:21
找了很久的寶物,一定要細細嘴嚼
作者: yhlyee     时间: 2006-4-9 22:54
正在学习批处理
不知道有没有这方面的书
作者: lpclimber     时间: 2006-4-14 00:06


  Quote:
Originally posted by 人类 at 2005-12-27 02:42:



choice是个外部命令,在2000和XP中推荐用SET,set是内部命令;如果你的批处理在98、xp下都要用,那么应先用环境变量检测OS版本,再分支选用choice戠...

非常同意!!
作者: lymygee     时间: 2006-4-16 15:15
谢谢,我想找个完整的DOS书籍看看,不知到那位大虾有啊
作者: chainliq     时间: 2006-4-17 04:23    标题: 晕。


作者: chainliq     时间: 2006-4-17 04:24    标题: 我不懂啊,

我不懂啊,可是我又好想学。哪位大虾能教教我啊,非常感谢!~!~
QQ:149677753
作者: chainliq     时间: 2006-4-17 04:27    标题: 关于后台运行的程序!~

请问哪位大虾知道怎么样才能使指定的程序让它在后台运行啊,而在开机运行的时候运行窗口不可见,而且能达到最少化的效果。如果有哪位大虾懂的请QQ联系:149677753
请求为:DOS联盟
作者: langwen06     时间: 2006-4-19 21:42
感激...正需学习
作者: chineselgs     时间: 2006-4-22 11:07    标题: 这们DOS大师,小弟想请教一下.

我在批处理输入:

@echo off
echo =
format d:/q
eixt

可运行一半它让我手动输入Y或者N以确认是否格式化D盘,我想请教怎样才能让它自动运行格式化,不用手动去确认了!
请教一下我,说清楚点,俺可是只大菜鸟~~~~~
作者: diypyh     时间: 2006-4-25 22:19
谢谢了,
deltree -y c:兡
这个是什么命令?
作者: pphlw639     时间: 2006-4-28 12:04
楼主辛苦,好好学习一下。
作者: zilongzhao     时间: 2006-4-28 20:37
在这里得到不少的启发,希望今后能得到更详细的关于批处理文件的指导。
作者: khw     时间: 2006-5-3 14:49
good!!!!謝謝樓主~!!!
作者: meteor027     时间: 2006-5-24 09:30


  Quote:
Originally posted by chineselgs at 2006-4-22 11:12:
我在批处理输入:

@echo off
echo =
format d:/q
eixt

可运行一半它让我手动输入Y或者N以确认是否格式化D盘,我想请教怎样才能让它自动运行格式化,不用 ...

加個參數就好了:  format d:/q -y
作者: wwcz898     时间: 2006-5-27 20:56
bucuo xuexi
作者: luyuanm     时间: 2006-5-28 22:04
15楼的,C:E:都有autoexec.bat,说明你在两个盘都有系统,或是无意复制的
作者: zhouhb     时间: 2006-5-31 16:23
这是个好东东,拷下来学习
作者: dosgll     时间: 2006-6-5 17:26    标题: 多谢!顶


作者: qqlcy64     时间: 2006-6-6 21:36
学一学,有用,不错
作者: wj75902238     时间: 2006-6-13 18:01
我太菜了,先收藏着吧
作者: xiongwei2624     时间: 2006-6-27 15:03
感谢,支持
作者: nbs1214     时间: 2006-7-10 23:34
多谢,学到很多!!1
作者: d1998o     时间: 2006-7-26 18:54
不错的帖子,可是我对那个%东西还不是怎么明白.
作者: awen162     时间: 2006-8-2 10:00
温习了一遍,不过第二篇就有点看不明!
作者: freshman8008     时间: 2006-8-9 09:33
做个极好,慢慢看。
作者: passerby     时间: 2006-8-9 21:11
呵呵,支持
作者: linkerson     时间: 2006-8-11 16:12
我要好好学习啊!
作者: pjcn     时间: 2006-8-18 10:46
这个真好,就是太少了,不知道有没有这方面的书
作者: hncddyl     时间: 2006-8-27 16:08
对批处理是一知半解的,希望能从这里学到更多的内容
作者: baomaboy     时间: 2006-8-27 18:01
谢谢 要学的东西真多啊
作者: r7115     时间: 2006-9-9 01:03
多谢分享,谢谢!
作者: bigeyes     时间: 2006-9-12 10:09
正在学习批处理
不知道有没有这方面的书
作者: yjf2006     时间: 2006-9-12 12:59
佩服死 了!!努力学习中
作者: snowbbbb     时间: 2006-9-15 21:28
好呀???呵呵!
作者: d1998o     时间: 2006-9-17 10:41
这篇文章对初学者主有用了,就是不怎么看得懂。
作者: kennyfan     时间: 2006-9-18 11:07
(四)菜单选择功能  好复杂啊,,还不明白!
作者: r7115     时间: 2006-9-18 20:05
好東西一定要支持,感謝分享!
作者: bailive     时间: 2006-9-22 03:44
能不能更详细的介绍下呢?
作者: tinytiger     时间: 2006-10-3 22:46
学习中..........
作者: EvilFox     时间: 2006-10-4 00:06
这个教程仅仅适用于MS-DOS吗?
作者: EvilFox     时间: 2006-10-4 00:46
我在2000的CMD和模拟的dos下(command)发现choice不能用。
作者: chen463     时间: 2006-10-6 12:09
我是蔡鳥進來學習
作者: kingchain     时间: 2006-10-15 21:42
学习啊
作者: guochangjj     时间: 2006-10-16 00:44
报到!
学习!
作者: frank9494     时间: 2006-10-18 04:56
以前没有尝试过使用if,goto之类的语句,学习了!
作者: cjbo168     时间: 2006-10-19 03:59
很好的材料
作者: o0o     时间: 2006-10-19 11:52
谢谢分享!学习一下!
作者: lxhjohn     时间: 2006-10-21 03:48
现在了解DOS的人非常少啊
作者: kingsphw     时间: 2006-10-22 12:14
好东西,赞一个。
作者: weilong888     时间: 2006-10-22 20:34
这DEBUG还有这样的用法啊。
作者: zah98     时间: 2006-10-24 07:46
终于找到了FOR的用法,谢谢!
作者: yjjbmk     时间: 2006-10-27 08:51
多谢楼主!!我是很菜很菜的菜鸟,向楼主学习!
作者: elantra     时间: 2006-10-30 05:53    标题: 你好

:P 为什么批处理命令choice在winxp的dos环境下无法识别运行,有没有其他可代替的命令?因为我想编一个小批处理命令,又不太懂,能否请赐教?
作者: redtek     时间: 2006-10-30 06:12


  Quote:
Originally posted by elantra at 2006-10-30 05:53:
:P 为什么批处理命令choice在winxp的dos环境下无法识别运行,……

这个贴子上有Windows Server 2003 的 choice.exe下载和介绍:)

http://www.cn-dos.net/forum/viewthread.php?tid=24011&fpage=1
作者: elantra     时间: 2006-10-30 06:51
谢啦.......
作者: jamess     时间: 2006-11-2 00:19
真的很不错!!!!!!!!
:o
作者: 8250     时间: 2006-11-4 04:20
太简单,基本我都懂,个人觉得没什么用。
作者: jiesen     时间: 2006-11-12 05:51
谢谢 非常有用~!~!
作者: dshh98     时间: 2006-11-15 13:04
z再基础些的   俺对批处理才刚刚接触  ``:(
作者: zgren1979     时间: 2006-11-16 11:20
顶第2贴...有吃引药的作用...多谢
作者: wangjie     时间: 2007-2-2 03:45
正在學習中!謝謝樓主!
作者: zencome     时间: 2007-2-3 02:22
非常值得学习!!
作者: me473     时间: 2007-2-3 10:11
第一个帖子的还看得明白,第二个就不啦。
作者: anqing     时间: 2007-2-5 08:00
只有两楼的帖子,还是太少了。希望以后增加一些,讲解加例子。
作者: 181801669     时间: 2007-2-6 12:03
太好了,正在学
作者: crazyfish     时间: 2007-2-9 06:04
先顶了再回来看
作者: semirmyway     时间: 2007-2-10 11:12
学习一下。。。。。
作者: dsaczx     时间: 2007-2-11 05:26
最好能再详细些就好了
作者: xycoordinate     时间: 2007-2-16 01:19


  Quote:
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……

如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?

例如,test.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

为什么在我的WINXP上的CMD下不能执行choice命令???
作者: gne3     时间: 2007-2-17 03:41
看看
作者: 690712     时间: 2007-2-24 06:47
要学的太多。。。。
作者: ran520     时间: 2007-3-1 11:12
好帖`

收藏了``
作者: ziban     时间: 2007-3-5 12:10
好东东!
作者: 574855721     时间: 2007-3-5 12:37
宝贝,先收了,仔细学!!
谢谢楼主
作者: kongen     时间: 2007-3-6 05:51
study...
作者: tyuooiu     时间: 2007-3-7 03:24
谢谢!
作者: SCZXCHEN     时间: 2007-3-7 06:58
hao dong xi
作者: xiaxuan     时间: 2007-3-7 23:25    标题: 好教材,学习学习

好东西,谢谢先
作者: flycool     时间: 2007-3-8 06:49
好帖子 确实是好帖子~
作者: 0633zhou     时间: 2007-3-9 05:06
我是新手 看不明白 哈哈
作者: putao200602     时间: 2007-3-13 05:19
这个里面的东西非常好哦  我才学完最基本的那些命令呢呵呵
谢谢   我永远支持你们
作者: jackyggt     时间: 2007-3-13 07:27
很好的基础教程啊
作者: norain418     时间: 2007-3-13 22:44
还不能说话吗?
作者: norain418     时间: 2007-3-13 22:45
好贴。初学很有帮助,谢谢俄
作者: xywlty     时间: 2007-3-17 00:48
我是 来 温习的  好久不用 都 有 点忘了
作者: xhplj     时间: 2007-3-17 10:55
这课程让我有了提高啊, 我以前看到:都不知道是什么意思呢.
作者: 574855721     时间: 2007-3-18 00:50
我也是刚学啊,可2楼的看不太明白!是不是要有dos的基础啊!!!
作者: joytuyong1     时间: 2007-3-20 02:26
学到东西 了,谢谢!
作者: shamogui     时间: 2007-3-24 03:45    标题:

我新手,也来顶一 下
作者: xunlian     时间: 2007-3-27 01:29
顶~~~~~~`
作者: nanako     时间: 2007-4-1 02:02    标题:

好贴,希望继续!
作者: 104851673     时间: 2007-4-1 12:03
我正找这方面的资料帖子`谢谢  批处理的入门由你而带入
作者: beijingju     时间: 2007-4-4 10:41
收获不小,感谢大师了。^-^
作者: zmlmf20008     时间: 2007-4-5 12:06    标题: 大家好!

大家好!  我是新来的哦。..
   希望各位大哥能多多包涵小弟偶哦..
作者: marxch     时间: 2007-4-7 08:24
好东西
作者: yinshaojie     时间: 2007-4-8 03:50
谢谢楼主了,虽然你不记得在哪里找到的,但是你的文章还是比较全的,我又学到东西了.
作者: m244819     时间: 2007-4-10 05:35
我可发现了,用编制批处理文件的方法比查找文件可快多了!而助一目了然呀!
作者: wxd198692     时间: 2007-4-14 03:18
学习~
作者: ls1314758     时间: 2007-4-14 06:48
好东西,值得学习,正想要这样的文章
作者: lingxindu     时间: 2007-4-14 08:40
wo  正在学习 dos    有好多问题搞不懂
作者: fyb198351     时间: 2007-4-15 15:38
先顶了再看
作者: clamp118     时间: 2007-4-17 03:45
收藏了,顶。
作者: THREEKS     时间: 2007-4-20 09:45
学到~
作者: iceshell     时间: 2007-4-23 09:03
危险的批处理好可怕啊。。。。
作者: hhong     时间: 2007-4-24 05:59
学习中,谢谢!
作者: youhuozhiwen     时间: 2007-4-24 20:14
有些迷糊但是要努力学习
作者: litaobbs     时间: 2007-4-25 04:58    标题: ding

dingxia
作者: lisus     时间: 2007-4-26 13:05
新手....

    过来跟各位学习习...
作者: tlk1793     时间: 2007-5-2 15:31
good
作者: loveks     时间: 2007-5-14 22:50
没有想到,这里面的dos 技术太多了.

[ Last edited by loveks on 2007-5-14 at 10:52 PM ]
作者: guodingdong     时间: 2007-5-17 17:08    标题: 顶上!!!!!!!!!

以前我也学会DOS一些的命令都还知道,但是没有像这么系统的去用过,到现在才发现有这么多机密!!!!!!!!!!!!谢谢版主给我们机会!!!!!!!!!
作者: zglxw     时间: 2007-5-23 15:55
支持
作者: tyh     时间: 2007-5-25 11:02
大师就是大师。
作者: dby55     时间: 2007-5-25 16:21
不错的教程哦
作者: netluck     时间: 2007-5-26 12:59
学到很多东西 谢谢
作者: edison     时间: 2007-5-27 15:27
对于我这种莱鸟来说是十分复杂
作者: xaoxu     时间: 2007-5-29 22:39
dddddd..对我来说是好东西.收藏了
作者: flystar6     时间: 2007-5-31 21:14
楼主,建议整理一本有关于dos批处理的书籍,内容应该详细且通俗!
作者: 0487     时间: 2007-6-6 00:26
听了。。。害怕。。。
作者: ddgang     时间: 2007-6-9 21:03    标题: DOS启动盘

各位楼主请教DOS启动盘怎样加入GHOST SPFDISK
作者: ly2006     时间: 2007-6-10 01:01
好东西的................
作者: iamquick     时间: 2007-6-12 22:02    标题: hao

hao
作者: hackerflysky     时间: 2007-6-18 01:07    标题:

值得收藏
作者: newlive     时间: 2007-6-19 21:15
好,学习,qingjiao
作者: winghsu     时间: 2007-6-20 15:15
謝謝了
作者: wangjia2008     时间: 2007-6-20 23:50
太有用了,谢了
作者: flyinthesky     时间: 2007-6-23 11:42
就像3楼说的,第二部分资料很少见,呵呵,另外,坦白一下,俺也不会,谢谢如是大师分享!
作者: wgx1688     时间: 2007-6-24 12:01
看不怎么懂~~!!
作者: yangshunxu1247     时间: 2007-6-25 09:50    标题: 重定向是什么意思呢

“&<”  “>&”怎么用呢
作者: linzhe12     时间: 2007-6-29 17:11
谢谢分享
作者: chenghui     时间: 2007-6-30 18:26    标题: 请教 如是大师版主

如是大师版主:
cls
echo 开始清除根目录下的“维金”desktop病毒...
FOR %%a IN ( C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z: ) DO ATTRIB -R -H -S -A %%a\_desktop.ini & DEL /F /Q /A -R -H -S -A %%a\_desktop.ini & ATTRIB -R -H -S -A %%a\desktop.ini & DEL /F /Q /A -R -H -S -A %%a\desktop.ini
echo “维金”的病毒(_desktop.ini)删除结束,按任意键返回!
pause >nul
这是我编的杀毒断,运行通过(根目录下)。想请教怎么样通过DOS批处理,查杀文件目录和子目录的病毒,盼回复,谢谢!
作者: ddjk     时间: 2007-7-3 12:42
学到东西 了,谢谢!
作者: lemont     时间: 2007-7-4 14:41
这个好象看过的啊 ``顶了
作者: luowanli1984     时间: 2007-7-5 08:19
學習
作者: 6622186     时间: 2007-7-6 16:23
deltree 是 9x 和纯 DOS 下的一个命令, 其作用是删除目录树.
作者: simon1103     时间: 2007-7-12 09:27
学习了,很强大
作者: abdwq     时间: 2007-7-12 11:48
恩,不错,学习了
作者: ly511     时间: 2007-7-12 15:30
收藏先   谢谢楼主
作者: yimoton     时间: 2007-7-13 22:34
"@echo off
choice /c:dme defrag,mem,end "
楼主, 在xp的运行里提示没"choice"这个命令,莫非一定要在dos里才能搞?那不是应用范围很小?
作者: wogan     时间: 2007-7-27 16:30
还是这里好
作者: rogers     时间: 2007-7-28 12:08
学习
作者: whswbiori     时间: 2007-8-1 17:34
我是初学者 谢谢你 虽然不是全部看的懂
作者: shakngxi     时间: 2007-8-6 18:53    标题: ........

还是些地方不怎么清楚。。

比较有困难的地方请细说下
作者: haibo327     时间: 2007-8-9 14:19
倒,看得头晕
作者: xx12212     时间: 2007-8-12 11:38
至少第一篇帖子的内容我还看得懂。
作者: newmanha     时间: 2007-8-15 13:51
不错啊,要顶
作者: cikegate     时间: 2007-8-21 10:23
很好,有用
只是有点难
作者: rockdong     时间: 2007-8-22 17:03
頂一下!
作者: tank2452     时间: 2007-8-23 02:29
学习ING......
作者: kyodule     时间: 2007-8-23 11:18
谢谢楼主,辛苦了,一定好好学习
作者: 5i177     时间: 2007-8-23 20:42
非常好!谢谢!
作者: topaz     时间: 2007-8-24 11:37
太爽啦~
作者: topaz     时间: 2007-8-24 15:37
看完了,有收获
作者: gshla     时间: 2007-8-25 15:53    标题: vbvb



  Quote:
Originally posted by topaz at 2007-8-24 03:37 PM:
看完了,有收获

vb
作者: long626201     时间: 2007-8-27 23:04
正好
作者: gdboai123     时间: 2007-8-29 02:04
好 学到了一些东西
作者: liwa365     时间: 2007-8-31 11:04
学点东西....
作者: rqcwwkbg     时间: 2007-9-1 21:21
有部分懂,就是末的部分不是很懂?????????!!!!!!!!!!!!!!!!!!!!!!!
作者: gd2008     时间: 2007-9-4 23:38
haohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohaohao
作者: penghuahui     时间: 2007-9-6 10:57
好东西呀
谢谢大师
作者: wmc6432107     时间: 2007-9-13 10:05
ding!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: ab200210     时间: 2007-9-14 21:22
晕了
作者: netroyal     时间: 2007-9-27 10:03    标题: 提个意见好吧 ?

我觉得这不是“批处理教学”,这更像“批处理综述”,我是说,要是不懂批处理,那他看完了这帖还是不懂,懂的只是看着复习一下。这就起不到“教程”的作用了。

楼主说对吗?
作者: binggao     时间: 2007-9-30 09:06
学习了
作者: blueskyjing     时间: 2007-10-2 22:59
版主辛苦了,继续继续......期待更多的精华.....
作者: mycs163     时间: 2007-10-8 20:03
收获不小,感谢大师
作者: huahua0919     时间: 2007-10-11 20:23
难,好难
作者: z83001     时间: 2007-10-20 23:12
看过了,新手学习了,批处理这东西用到的地方还真的是不少,而且还省事
作者: cay6200     时间: 2007-10-21 22:08
顶顶
作者: xinhepc     时间: 2007-10-22 10:23
谢谢分享!学到不少了1!
作者: kghong     时间: 2007-10-25 21:29
学到东西 了,谢谢!
作者: javalet     时间: 2007-10-31 19:56
真是好东西,放到我的网站上珍藏
作者: jfsy     时间: 2007-11-1 13:29
谢谢,收下了慢慢学
作者: alexzhangmin     时间: 2007-11-1 22:11
很不错的帖子
看过不少关于批处理的介绍
这么通俗易懂的确实不多见
作者: redtree     时间: 2007-11-2 15:37
thanks
作者: hzx123dlm     时间: 2007-11-2 19:13
不错,不过我是菜鸟.一时消化不料,,,,,,,得漫漫来,谢谢
作者: fengjian     时间: 2007-11-5 16:32
你这个才是 我正才是我真正想要的
楼主谢了
作者: ywqsa206     时间: 2007-11-12 02:51
收藏了。。慢慢会看懂的。。偶不急。。
作者: lada     时间: 2007-11-16 15:29
好贴,顶了。第二篇收藏,慢慢琢磨!
作者: haogaogx     时间: 2007-11-18 01:27
哈派 好
作者: c1018     时间: 2007-11-22 22:15
学到东西 了,谢谢楼主发贴!
作者: chengchun     时间: 2007-11-23 22:03
学习了谢谢
作者: pan163     时间: 2007-11-28 09:01
谢谢。。。
作者: cuggoat     时间: 2007-11-30 22:14
很好,谢谢了,还有没有后续的啊
作者: hanlongtca     时间: 2007-12-3 19:53
有没有关于批处理学习的电子书?介绍下,我想带回去慢慢研究下
作者: penghuahui     时间: 2007-12-3 20:13
请问有些简单易懂的教程吗?
作者: kset     时间: 2007-12-7 15:08
先收藏起来
作者: philion     时间: 2007-12-12 15:02
好好学习天天向上
作者: dubowei     时间: 2007-12-12 20:13
谢谢!!!
作者: duoweikongjian     时间: 2007-12-19 10:58
谢谢楼主,写得很详细,今天学了很多知识!
作者: wangjmh     时间: 2007-12-19 16:05
这个板块好!
作者: uv2000     时间: 2007-12-23 11:16
好好学学  好东西
作者: tangxln     时间: 2007-12-25 12:39
hao dong xi o

[ Last edited by tangxln on 2007-12-25 at 01:06 PM ]
作者: yiyun     时间: 2007-12-26 16:38
安逸
谢过大师了。
作者: sickcat     时间: 2007-12-27 23:06
shoucang~~~
作者: niao7409     时间: 2007-12-28 19:29
好佛东西
作者: yukeke2006     时间: 2007-12-30 12:50
好好学习学习
作者: lianghengchao     时间: 2007-12-31 15:49
似乎学到点东西了!
作者: cliffordbear     时间: 2008-1-1 20:21
很不错的东西,正在学习中。
作者: dby55     时间: 2008-1-6 12:01
好东西,学习了
作者: dinfli     时间: 2008-1-7 15:46
原来这么简单的
作者: wwi551     时间: 2008-1-16 16:35
新兵来学习,很感谢贵论坛!!!!
作者: dosilove     时间: 2008-1-19 15:28
dos很高深
作者: dyz2213     时间: 2008-1-21 00:20
今天在家看了一天批处理的教程了
还没搞懂FOR的用法
作者: wj0553     时间: 2008-1-22 13:38
谢谢  学习了     !!!!!
作者: kgdetg1127     时间: 2008-1-25 22:13
顶顶。。。。。
作者: lvyan332     时间: 2008-1-28 15:10
认真看了一下,发现哪个什么DEBUG汇编程序很厉害,也引起我的兴趣,所以哪位大侠有debug相关的学习资料下载啊???

在线等,等不了,明天再等....
作者: babyyang1213     时间: 2008-2-10 02:10
呵呵,学到了点东西!
谢谢!
作者: niceskylei     时间: 2008-2-14 11:54
对批处理文件多少有点了解,谢谢楼主~
作者: simplenoughappy     时间: 2008-2-20 18:11
总之多谢楼主了.....刚开始起步看批处理....
作者: zonggoj     时间: 2008-2-22 11:09
这篇教程写的太好了,不过有些详细的地方还请完善
作者: linyu9958     时间: 2008-2-22 22:32
太多了
慢慢学习
作者: sakyamuni     时间: 2008-3-6 13:38    标题: 谢谢楼主

总算对批处理有了大概的了解
作者: longzai008     时间: 2008-3-9 21:18
楼主辛苦了!这么好的教程顶一个!!
作者: cjnppa     时间: 2008-3-17 22:28
刚来 学习哈
作者: dosbingbing     时间: 2008-3-20 19:31
真是写得太好了呀,我全力支持。
作者: dosbingbing     时间: 2008-3-20 19:31
多谢了呀,我把这个引用给我自己了呀,谢谢了呀。
作者: wuyalang     时间: 2008-3-25 19:32
好教学,学习中,谢谢分享
作者: beyond125     时间: 2008-3-27 16:55
真是好东西.谢谢你!!!!
作者: niao22     时间: 2008-3-31 23:16
98时代的DOS批处理教程吧
作者: adgjmptw     时间: 2008-4-3 22:16
很好的dos新手入门资料,赞!
作者: xtanbmy     时间: 2008-4-7 17:02
很好的贴子,收藏了,学习中。谢谢!
作者: wood0sky     时间: 2008-4-11 03:19
x新手来学习
作者: imyours     时间: 2008-4-11 13:13
拜读了. 十分感谢
作者: bsksfi1010     时间: 2008-4-16 11:59
对批处理文件多少有点了解,期待更多的,更全面的内容出现,谢谢楼主~
作者: lisin     时间: 2008-4-16 19:06
学习了.谢谢辛勤劳动无私奉献
作者: hzx123dlm     时间: 2008-4-17 14:20
挺多的,我是新手,得慢慢来,谢谢
作者: wyl091256     时间: 2008-4-20 12:50    标题: 学习了

学习了
作者: naughtypack     时间: 2008-4-21 19:38
谢谢啊,很好的东东
作者: litianao     时间: 2008-4-26 10:13    标题: 正需要

我现在正在学习批处理
这些正是我需要的
感谢
作者: becat088     时间: 2008-4-27 00:54
好帖啊,学到了些
作者: hengyunabc     时间: 2008-4-27 11:20
,真的是好帖子!!
作者: maikaluo     时间: 2008-4-29 09:25    标题: 请高手

请各位高手帮忙写个  吓人的电脑重启屏幕保护程序
拜托了   。。。。谢谢  哦
作者: youling126     时间: 2008-5-9 13:27
好东西,学习学习
作者: woshimengmeng     时间: 2008-5-10 00:47
非常不错,正要了解这些.
楼主辛苦了。 努力学习中
作者: xixihua     时间: 2008-5-12 00:40
我要好好学
作者: jackelee     时间: 2008-5-22 23:28
谢谢
作者: nethyx     时间: 2008-5-23 13:21
批处理还是很好用的东西,准备从头学起
作者: cao7113     时间: 2008-5-23 15:04
多谢!
作者: yuanyuan8422     时间: 2008-5-24 21:17
受益,感谢搂主。
作者: zhang08     时间: 2008-5-27 21:23
受教了   顶下
作者: id0663     时间: 2008-5-29 20:26    标题: 看不懂啊……哭

看不懂啊,哭……
要怎么样才能学好DOS啊?
哪们师父来招招啊
哭……
作者: luckysheep     时间: 2008-5-31 14:42
强烈学习了,谢谢楼主
作者: dosbingbing     时间: 2008-5-31 20:51    标题: 很好。

让我理解了不少,很实用。谢谢。
作者: alvin8888     时间: 2008-6-3 07:47
是啊
作者: radem     时间: 2008-6-25 18:43
来这里就是学..
作者: 007feiren     时间: 2008-6-26 16:13
值得学习,我想收藏起来一点点学,但是却找不到收藏的地方?
作者: herozyf     时间: 2008-6-27 23:33
进来学习下了
作者: LONGFENG425     时间: 2008-6-28 10:46
DEBUG不懂,请教了!
作者: nul     时间: 2008-7-7 10:48
前面的有点明白了,但最后的一点也看不懂。看来还得多学习呀!
作者: Val3     时间: 2008-7-17 10:45
学到了 不少,在这里谢谢了,您辛苦了!
作者: gaoyaqun     时间: 2008-7-23 09:53
对我们初学者很有用
作者: hz1326     时间: 2008-8-2 13:29
新手上路 请多关照 呵呵
作者: jipinshangren     时间: 2008-8-15 02:40
我觉得这个文章也不错!(附上地址)
http://www.cn-dos.net/forum/viewthread.php?tid=38237&fpage=1
作者: qpalzm741369     时间: 2008-8-28 03:02
THANK YOU~~
作者: xb20082007     时间: 2008-8-29 21:12
好东西,顶
作者: EvilSkyVice     时间: 2008-8-29 21:40
吼吼~赞一个先~
作者: jjlc10227     时间: 2008-9-8 14:17
我正想学学批处理,谢谢
作者: dywjzh     时间: 2008-9-9 11:41
好东西要评分
作者: yongyue258     时间: 2008-9-11 23:39
重在参与
作者: fatbig     时间: 2008-9-17 21:53    标题: 日文系统不让回复吗?

我就是想顶一把!
作者: fatbig     时间: 2008-9-17 21:54    标题: give me a chance please

i just want to send a post
作者: chenfenglzy     时间: 2008-10-1 22:32
学到东西 了,谢谢!
作者: lanmoyidao     时间: 2008-10-9 15:48
顶顶顶顶顶顶顶顶点
作者: aiqian2008     时间: 2008-10-12 01:12
时间有限 先收藏了
作者: oldghost     时间: 2008-10-22 09:16


  Quote:
Originally posted by chineselgs at 2006-4-22 11:12:
我在批处理输入:

@echo off
echo =
format d:/q
eixt

可运行一半它让我手动输入Y或者N以确认是否格式化D盘,我想请教怎样才能让它自动运行格式化,不用 ...

试一下这样行不行:
@echo off
echo =
format d:/q /u
eixt
参数Q是快速格式化,U是强制执行.另外还有一个参数是/AUTOTEST是自动执行,
作者: ymqq2003     时间: 2008-10-27 10:22    标题: 如何循环为新建文件夹设共享

我做了一个批处理,让用户输入一个数字,然后循环建立该数量的文件夹,但我还想为这些文件夹设置共享,但不知道咋么做,请指导一下
@echo off
cd c:\
set name=0
set /p name="请输入机号:"
set t=name
for /l %%a in (1 1 %name%) do md %%a
作者: aprilus     时间: 2008-11-5 18:23
好帖
作者: wishpopo     时间: 2008-11-7 21:12
强悍
作者: 5551551     时间: 2008-11-29 12:37
好贴