??xml version="1.0" encoding="utf-8" standalone="yes"?>91亚洲国产成人久久精品网址,99久久综合狠狠综合久久,少妇无套内谢久久久久http://www.shnenglu.com/dawnbreak/category/8947.htmlhttp://blog.csdn.net/dawnbreak/zh-cnTue, 25 Nov 2008 22:52:08 GMTTue, 25 Nov 2008 22:52:08 GMT60批处理命令基学习http://www.shnenglu.com/dawnbreak/articles/67858.htmlpear_lipear_liTue, 25 Nov 2008 16:36:00 GMThttp://www.shnenglu.com/dawnbreak/articles/67858.htmlhttp://www.shnenglu.com/dawnbreak/comments/67858.htmlhttp://www.shnenglu.com/dawnbreak/articles/67858.html#Feedback0http://www.shnenglu.com/dawnbreak/comments/commentRss/67858.htmlhttp://www.shnenglu.com/dawnbreak/services/trackbacks/67858.htmlM在命令提C符下可使用的命令都可用在批处理E序中。此外,下面MS-DOS命o是专门在批处理程序中使用的?
<Call>         <If>
<Choice>         <Pause>
<Echo>         <Rem>
<For>           <Shift>
<Goto>
================================================================
常用命o
echo、@、call、pause、rem(技巧:?:代替rem)是批处理文g最常用的几个命令,我们׃他们开始学赗?
==== willsort ~注 ==============================================
首先, @ 不是一个命? 而是DOS 批处理的一个特D标记符, 仅用于屏蔽命令行回显. 下面是DOS命o行或批处理中可能会见到的一些特D标记符:
CR(0D)   命o行结束符
Escape(1B)   ANSI转义字符引导W?
Space(20)   常用的参数界定符
Tab(09) ; =   不常用的参数界定W?
+     COPY命o文gq接W?
* ?       文g通配W?
""       字符串界定符
|       命o道W?
< > >>   文g重定向符
@       命o行回昑ֱ蔽符
/       参数开兛_导符
:       批处理标{ּ导符
%       批处理变量引导符
其次, :: 实可以起到rem 的注释作? 而且更简z有? 但有两点需要注?
W一, 除了 :: 之外, M?:开头的字符? 在批处理中都被视作标? 而直接忽略其后的所有内? 只是Z与正常的标号相区? 使用 goto 所无法识别的标? 卛_ :后紧跟一个非字母数字的一个特D符?
W二, 与rem 不同的是, ::后的字符行在执行时不会回? 无论是否用echo on打开命o行回昄? 因ؓ命o解释器不认ؓ他是一个有效的命o? 此Ҏ(gu)? rem 在某些场合下比 :: 更ؓ适用; 另外, rem 可以用于 config.sys 文g?
================================================================
echo 表示昄此命令后的字W?
echo off 表示在此语句后所有运行的命o都不昄命o行本w?
@与echo off相象Q但它是加在每个命o行的最前面Q表C行时不显C一行的命o行(只能影响当前行)?
call 调用另一个批处理文gQ如果不用call而直接调用别的批处理文gQ那么执行完那个批处理文件后无法返回当前文件ƈ执行当前文g的后l命令)?
pause q行此句会暂停批处理的执行ƈ在屏q上昄Press any key to continue...的提C,{待用户按Q意键后l?
rem 表示此命令后的字Wؓ解释行(注释Q,不执行,只是l自׃后参考用的(相当于程序中的注释)?
==== willsort ~注 =============================================
此处的描q较为؜? 不如直接引用个命令的命o行帮助更为条?
-----------------------------------------------------------------
                ECHO
当程序运行时Q显C或隐藏批处理程序中的正文。也可用于允许或止命o的回显?
在运行批处理E序ӞMS-DOS一般在屏幕上显C(回显Q批处理E序中的命o?
使用ECHO命o可关闭此功能?
语法
ECHO [ON|OFF]
若要用echo命o昄一条命令,可用下述语法Q?
echo [message]
参数
ON|OFF
指定是否允许命o的回显。若要显C当前的ECHO的设|,可用不带参数的ECHO
命o?
message
指定让MS-DOS在屏q上昄的正文?
-----------------------------------------------------------------
                CALL
从一个批处理E序中调用另一个批处理E序Q而不会引L一个批处理的中止?
语法
CALL [drive:][path]filename [batch-parameters]
参数
[drive:][path]filename
指定要调用的批处理程序的名字及其存放处。文件名必须?BAT作扩展名?
 
batch-parameters
指定批处理程序所需的命令行信息?
----------------------------------------------------------------------------
              PAUSE
暂停批处理程序的执行q显CZ条消息,提示用户按Q意键l箋执行。只能在批处
理程序中使用该命令?
语法
PAUSE
----------------------------------------------------------------------------
                REM
在批处理文g或CONFIG.SYS中加入注解。也可用REM命o来屏蔽命令(在CONFIG.SYS
中也可以用分?;)代替REM命oQ但在批处理文g中则不能替代Q?
语法
REM [string]
参数
string
指定要屏蔽的命o或要包含的注解?
================================================================
?Q用edit~辑a.bat文gQ输入下列内容后存盘为c:\a.batQ执行该批处理文件后可实玎ͼ根目录中所有文件写?a.txt中,启动UCDOSQ进入WPS{功能?
  批处理文件的内容?         命o注释Q?
    @echo off           不显C后l命令行及当前命令行
    dir c:\*.* >a.txt       c盘文件列表写入a.txt
    call c:\ucdos\ucdos.bat    调用ucdos
    echo 你好            昄"你好"
    pause              暂停,{待按键l箋
    rem 准备q行wps         注释Q准备运行wps
    cd ucdos            q入ucdos目录
    wps               q行wps  
批处理文件的参数
批处理文件还可以像C语言的函C样用参敎ͼ相当于DOS命o的命令行参数Q,q需要用C个参数表C符“%”?
%[1-9]表示参数Q参数是指在q行批处理文件时在文件名后加的以I格Q或者TabQ分隔的字符丌Ӏ变量可以从%0?9Q?0表示批处理命令本w,其它参数字符串用%1?9序表示?
?QC:根目录下有一批处理文件名为f.batQ内容ؓQ?
@echo off
format %1
如果执行C:\>f a:
那么在执行f.batӞ%1pCa:Q这样format %1q当于format a:Q于是上面的命oq行时实际执行的是format a:
?QC:根目录下一批处理文件名为t.batQ内容ؓ:
@echo off
type %1
type %2
那么q行C:\>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
于是上面的命令将序地显Ca.txt和b.txt文g的内宏V?
Ҏ(gu)命o
if goto choice for是批处理文g中比较高U的命oQ如果这几个你用得很熟练Q你是批处理文件的专家啦?
一、if 是条件语句,用来判断是否W合规定的条Ӟ从而决定执行不同的命o?有三U格?
1、if [not] "参数" == "字符? 待执行的命o
参数如果{于(not表示不等Q下?指定的字W串Q则条g成立Q运行命令,否则q行下一句?
例:if "%1"=="a" format a:

if 的命令行帮助中关于此点的描述?
  IF [NOT] string1==string2 command
在此有以下几炚w要注?
  1. 包含字符串的双引号不是语法所必须? 而只是习惯上使用的一U?防空"字符
  2. string1 未必是参? 它也可以是环境变? 循环变量以及其他字符串常量或变量
  3. command 不是语法所必须? string2 后跟一个空格就可以构成一个有效的命o?
================================================================
2、if [not] exist [路径\]文g?待执行的命o
如果有指定的文gQ则条g成立Q运行命令,否则q行下一句?
? if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文gQ则昄它的内容?
****** willsort ~注 ********
也可以用以下的用法:
  if exist <device> command
device 是指DOSpȝ中已加蝲的设? 在win98下通常?
  AUX, PRN, CON, NUL
  COM1, COM2, COM3, COM4
 
   LPT1, LPT2, LPT3, LPT4
  XMSXXXX0, EMMXXXX0
  A: B: C: ...,
  CLOCK$, CONFIG$, DblBuff$, IFS$HLP$
具体的内容会因硬软g环境的不同而略有差? 使用q些讑֤名称? 需要保证以下三?
  1. 该设备确实存?pY件虚拟的讑֤除外)
  2. 该设备驱动程序已加蝲(aux, prn{标准设备由pȝ~省定义)
  3. 该设备已准备?主要是指a: b: ..., com1..., lpt1...{?
可通过命o mem/d | find "device" /i 来检阅你的系l中所加蝲的设?
另外, 在DOSpȝ? 讑֤也被认ؓ是一U特D的文g, 而文件也可以UC字符讑֤; 因ؓ讑֤(device)与文仉是用句?handle)来管理的, 句柄是名字, cM于文件名, 只不q句柄不是应用于盘理, 而是应用于内存管理而已, 所谓设备加载也x在内存中为其分配可引用的句柄.
================================================================
3、if errorlevel <数字> 待执行的命o
很多DOSE序在运行结束后会返回一个数字值用来表C程序运行的l果(或者状?Q通过if errorlevel命o可以判断E序的返回|Ҏ(gu)不同的返回值来军_执行不同的命?q回值必L照从大到的序排列)。如果返回值等于指定的数字Q则条g成立Q运行命令,否则q行下一句?
如if errorlevel 2 goto x2
==== willsort ~注 ====================================================
q回g大到的序排列不是必须? 而只是执行命令ؓ goto 时的习惯用法, 当?set 作ؓ执行命o? 通常会从到大顺序排? 比如需返回码|入环境变量, 需使用以下的顺序Ş?
if errorlevel 1 set el=1
if errorlevel 2 set el=2
if errorlevel 3 set el=3
if errorlevel 4 set el=4
if errorlevel 5 set el=5
...
当然, 也可以用以下@环来替代, 原理是一致的:
for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e
更高效简z的用法, 可以参考我写的另一关于获?errorlevel 的文?
出现此种现象的原因是, if errorlevel 比较q回码的判断条gq{于, 而是大于{于. ׃ goto 的蟩转特? 由小到大排序会导致在较小的返回码处就跛_; 而由?set命o?"重复" 赋值特? 由大到小排序会导致较?yu)的q回?"覆盖" 较大的返回码.
另外, 虽然 if errorlevel=<数字> command 也是有效的命令行, 但也只是 command.com 解释命o行时?= 作ؓ命o行切分符而忽略掉|了
================================================================
二、goto 批处理文件运行到q里蟩到goto所指定的标?标号即labelQ标L:后跟标准字符串来定义)处,goto语句一般与if配合使用Q根据不同的条g来执行不同的命ol?
?
goto end
:end
echo this is the end
标号?#8220;:字符?#8221;来定义,标号所在行不被执行?
==== willsort ~注 ====================================================
label 常被译ؓ "标签" , 但是qƈ不具有广泛的U定?
goto <label> ?:<label> 联用可实现执行中途的跌{, 再结?if 可实现执行过E的条g分支, 多个 if 卛_实现命o的分l? cM C ?switch case l构或?Basic 中的 select case l构, 大规模且l构化的命o分组卛_实现高语言中的函数功能. 以下是批处理和C/Basic在语法结构上的对?
  Batch           C / Basic
  goto&:           goto&:
  goto&:&if         if{}&else{} / if&elseif&endif
  goto&:&if...       switch&case / select case
  goto&:&if&set&envar...   function() / function(),sub()
================================================================
三、choice 使用此命令可以让用户输入一个字W(用于选择Q,从而根据用L选择q回不同的errorlevelQ然后于if errorlevel配合Q根据用L选择q行不同的命令?
 
 注意Qchoice命o为DOS或者Windowspȝ提供的外部命令,不同版本的choice命o语法会稍有不同,Lchoice /?查看用法?
choice的命令语法(该语法ؓWindows 2003中choice命o的语法,其它版本的choice的命令语法与此大同小异)Q?
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
描述:
该工具允许用户从选择列表选择一个项目ƈq回所选项目的索引?
参数列表:
/C   choices   指定要创建的选项列表。默认列表是 "YN"?
/N         在提C符中隐藏选项列表。提C前面的消息得到昄Q?
        选项依旧处于启用状态?
/CS       允许选择分大写的选项。在默认情况下,q个工具
        是不分大写的?
/T   timeout   做出默认选择之前Q暂停的U数。可接受的值是?0
        ?9999。如果指定了 0Q就不会有暂停,默认选项
        会得到选择?
/D   choice   ?nnnn U之后指定默认选项。字W必d?/C ?
        Ҏ(gu)定的一l选择? 同时Q必ȝ /T 指定 nnnn?
/M   text     指定提示之前要显C的消息。如果没有指定,工具?
        昄提示?
/?         昄帮助消息?
注意:
ERRORLEVEL 环境变量被设|ؓ从选择集选择的键索引。列出的W一个?
择返?1Q第二个选择q回 2Q等{。如果用h的键不是有效的选择Q?
该工具会发出警告响声。如果该工具到错误状态,它会q回 255 ?
ERRORLEVEL 倹{如果用h Ctrl+Break ?Ctrl+C 键,该工具会q回 0
?ERRORLEVEL 倹{在一个批E序中?ERRORLEVEL 参数Ӟ参数降
序排列?
CZ:
CHOICE /?
CHOICE /C YNC /M "认h YQ否h NQ或者取消请?C?
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "选项 1 请选择 aQ选项 2 请选择 b?
CHOICE /C ab /N /M "选项 1 请选择 aQ选项 2 请选择 b?
==== willsort ~注 ====================================================
我列出win98下choice的用法帮? 已资区分
Waits for the user to choose one of a set of choices.
{待用户选择一l待选字W中的一?
CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]
/C[:]choices Specifies allowable keys. Default is YN
    指定允许的按?待选字W?, 默认为YN
/N     Do not display choices and ? at end of prompt string.
    不显C提C字W串中的问号和待选字W?
/S     Treat choice keys as case sensitive.
    处理待选字W时大小写敏?
/T[:]c,nn   Default choice to c after nn seconds
    ?nn U后默认选择 c
text     Prompt string to display
    要显C的提示字符?
ERRORLEVEL is set to offset of key user presses in choices.
ERRORLEVEL 被设|ؓ用户键入的字W在待选字W中的偏Ud?
================================================================
如果我运行命令:CHOICE /C YNC /M "认h YQ否h NQ或者取消请?C?
屏幕上会昄Q?
认h YQ否h NQ或者取消请?C?[Y,N,C]?

例:test.bat的内容如下(注意Q用if errorlevel判断q回值时Q要按返回g高到低排列):
@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此批处理q行后,显C?#8220;defrag,mem,end[D,M,E]?” Q用户可选择d m e Q然后if语句Ҏ(gu)用户的选择作出判断Qd表示执行标号为defrag的程序段Qm表示执行标号为mem的程序段Qe表示执行标号为end的程序段Q每个程序段最后都以goto end程序蟩到end标号处,然后E序显Cgood byeQ批处理q行l束?
 
 四、for 循环命oQ只要条件符合,它将多次执行同一命o?
语法Q?
对一l文件中的每一个文件执行某个特定命令?
FOR %%variable IN (set) DO command [command-parameters]
%%variable 指定一个单一字母可替换的参数?
(set)   指定一个或一l文件。可以用通配W?
command   指定Ҏ(gu)个文件执行的命o?
command-parameters
    为特定命令指定参数或命o行开兟?
例如一个批处理文g中有一?
for %%c in (*.bat *.txt) do type %%c
则该命o行会昄当前目录下所有以bat和txt为扩展名的文件的内容?
==== willsort ~注 ====================================================
需要指出的? ?)中的字符串ƈ非单个或多个文g名时, 它将单纯被当作字W串替换, q个Ҏ(gu)再加上()中可以嵌入多个字W串的特? 很明?for 可以被看作一U遍历型循环.
当然, ?nt/2000/xp/2003 pd的命令行环境? for 被赋予了更多的特? 使之可以分析命o输出或者文件中的字W串, 也有很多开兌用于扩展了文件替换功?
===============================================================Q?
批处理示?
1. IF-EXIST
1) 首先用记事本在C:\建立一个test1.bat批处理文Ӟ文g内容如下Q?
@echo off
IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT
IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist
然后q行它:
C:\>TEST1.BAT
如果C:\存在AUTOEXEC.BAT文gQ那么它的内容就会被昄出来Q如果不存在Q批处理׃提示你该文g不存在?
2) 接着再徏立一个test2.bat文gQ内容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist
执行:
C:\>TEST2 AUTOEXEC.BAT
该命令运行结果同上?
说明Q?
(1) IF EXIST 是用来测试文件是否存在的Q格式ؓ
IF EXIST [路径+文g名] 命o
(2) test2.bat文g中的%1是参敎ͼDOS允许传?个批参数信息l批处理文gQ分别ؓ%1~%9(%0表示test2命o本n) Q这有点象编E中的实参和形参的关p,%1是Ş参,AUTOEXEC.BAT是实参?
==== willsort ~注 ====================================================
DOS没有 "允许传?个批参数信息" 的限? 参数的个数只会受到命令行长度和所调用命o处理能力的限? 但是, 我们在批处理E序? 在同一时刻只能同时引用10个参? 因ؓ DOS只给Z %0~%9q十个参数引用符.
================================================================
3) 更进一步的Q徏立一个名为TEST3.BAT的文Ӟ内容如下Q?
@echo off
IF "%1" == "A" ECHO XIAO
IF "%2" == "B" ECHO TIAN
IF "%3" == "C" ECHO XIN
如果q行Q?
C:\>TEST3 A B C
屏幕上会昄:
XIAO
TIAN
XIN
如果q行Q?
C:\>TEST3 A B
屏幕上会昄
XIAO
TIAN
在这个命令执行过E中QDOS会将一个空字符串指定给参数%3?
2、IF-ERRORLEVEL
建立TEST4.BATQ内容如下:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 1 ECHO 文g拯p|
IF ERRORLEVEL 0 ECHO 成功拯文g
然后执行文g:
C:\>TEST4
如果文g拯成功Q屏q就会显C?#8220;成功拯文g”Q否则就会显C?#8220;文g拯p|”?
IF ERRORLEVEL 是用来测试它的上一个DOS命o的返回值的Q注意只是上一个命令的q回|而且q回值必M照从大到次序顺序判断?
因此下面的批处理文g是错误的Q?
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 0 ECHO 成功拯文g
IF ERRORLEVEL 1 ECHO 未找到拷贝文?
IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拯操作
IF ERRORLEVEL 3 ECHO 预置错误L文g拯操作
IF ERRORLEVEL 4 ECHO 拯q程中写盘错?
无论拯是否成功Q后面的Q?
未找到拷贝文?
用户通过ctrl-c中止拯操作
 
 预置错误L文g拯操作
拯q程中写盘错?
都将昄出来?
以下是几个常用命o的返回值及其代表的意义Q?
backup
0 备䆾成功
1 未找到备份文?
2 文g׃n冲突L备䆾完成
3 用户用ctrl-c中止备䆾
4 ׃致命的错误备䆾操作中止
diskcomp
0 盘比较相?
1 盘比较不?
2 用户通过ctrl-c中止比较操作
3 ׃致命的错误比较操作中止
4 预置错误中止比较
diskcopy
0 盘拷贝操作成?
1 非致命盘?写错
2 用户通过ctrl-cl束拯操作
3 因致命的处理错误使盘拯中止
4 预置错误L拯操作
format
0 格式化成?
3 用户通过ctrl-c中止格式化处?
4 因致命的处理错误使格式化中止
5 在提C?#8220;proceed with formatQy/nQ?”下用户键入nl束
xcopy
0 成功拯文g
1 未找到拷贝文?
2 用户通过ctrl-c中止拯操作
4 预置错误L文g拯操作
5 拯q程中写盘错?
==== willsort ~注 ====================================================
chkdsk
0   未找到错?
255 扑ֈ一个或多个错误
choice
0   用户按下ctrl+c/break
1   用户按下W一个键
255 到命o行中的错误条?
其它 用户按下的有效字W在列表中的位置
defrag
0   片压羃成功
1   出现内部错误
2   盘上没有空。要q行DEFRAGQ至要有一个空?
3   用户用Ctrl+C退ZDEFRAG
4   出现一般性错?
5   DEFRAG在读时遇到错误
6   DEFRAG在写时遇到错误
7   分配I间有错
8   内存?
9   没有_I间来压~磁盘碎?
deltree
0   成功地删除一个目?
diskcomp
0   两盘相同
1   发现不同
2   按CTRL+C l止了比?
3   出现严重错误
4   出现初始化错?
find
0   查找成功且至找C一个匹配的字符?
1   查找成功但没扑ֈ匚w的字W串
2   查找中出C错误
keyb
0   键盘定义文g装入成功
1   使用了非法的键盘代码Q字W集或语?
2   键盘定义文g坏或未找?
4   键盘、监视器通讯时出?
5   要求的字W集未准备好
move
0   成功地移动了指定的文?
1   发生了错?
msav /N
86   查到了病?
replace
0   REPLACE成功地替换或加入了文?
1   MS-DOS版本和REPLACE不兼?
2   REPLACE找不到源文g
3   REPLACE找不到源路径或目标\?
5   不能存取要替换的文g
8   内存不够无法执行REPLACE
11   命o行句法错?
restore
0   RESTORE成功地恢复了文g
1   RESTORE找不到要恢复的文?
3   用户按CTRL+Cl止恢复q程
4   RESTORE因错误而终?
scandisk
0   ScanDisk在它查的驱动器上未检到M错误
1   ׃命o行的语法不对Q不能运行ScanDisk
2   ׃内存用尽或发生内部错误,ScanDisk意外l止
3   用户让ScanDisk中途退?
4   q行盘面扫描Ӟ用户军_提前退?
254 ScanDisk扑ֈ盘故障q已全部校正
255 ScanDisk扑ֈ盘故障Q但未能全部校正
setver
0   SETVER成功地完成了d
1   用户指定了一个无效的命o开?
2   用户指定了一个非法的文g?
3   没有_的系l内存来q行命o
4   用户指定了一个非法的版本h?
5   SETVER在版本表中未扑ֈ指定的项
6   SETVER未找到SETVER.EXE文g
7   用户指定了一个非法的驱动?
8   用户指定了太多的命o行参?
9   SETVER到丢失了命令行参数
10   在读SETVER.EXE文gӞSETVER到发生错误
11   SETVER.EXE文g损坏
12   指定的SETVER.EXE文g不支持版本表
13   版本表中没有_的空间存放新的项
14   在写SETVER.EXE文g时SETVER到发生错误
================================================================
3、IF STRING1 == STRING2
建立TEST5.BATQ文件内容如下:
@echo off
IF "%1" == "A" FORMAT A:
执行Q?
C:\>TEST5 A
屏幕上就出现是否A:盘格式化的内宏V?
注意Qؓ了防止参CؓI的情况Q一般会字W串用双引号Q或者其它符P注意不能使用保留W号Q括h?
如:if [%1]==[A] 或?if %1*==A*
5、GOTO
建立TEST6.BATQ文件内容如下:
@ECHO OFF
IF EXIST C:\AUTOEXEC.BAT GOTO _COPY
GOTO _DONE
:_COPY
COPY C:\AUTOEXEC.BAT D:\
:_DONE
注意Q?
(1) 标号前是ASCII字符的冒?:"Q冒号与标号之间不能有空根{?
(2) 标号的命名规则与文g名的命名规则相同?
(3) DOS支持最长八位字W的标号Q当无法区别两个标号Ӟ蟩转至最q的一个标受?
==== willsort ~注 ====================================================
1)标号也称作标{?label)
2)标签不能以大多数的非字母数字字符开? 而文件名中则可以使用很多
3)当无法区别两个标{时, 蟩转至位置最靠前的标{?
================================================================
6、FOR
建立C:\TEST7.BATQ文件内容如下:
@ECHO OFF
FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C
q行Q?
C:\>TEST7
执行以后Q屏q上会将C:盘根目录下所有以BAT、TXT、SYS为扩展名的文件内Ҏ(gu)C出来(不包括隐藏文Ӟ?nbsp;



pear_li 2008-11-26 00:36 发表评论
]]>
批处理命?for的用?/title><link>http://www.shnenglu.com/dawnbreak/articles/67851.html</link><dc:creator>pear_li</dc:creator><author>pear_li</author><pubDate>Tue, 25 Nov 2008 14:00:00 GMT</pubDate><guid>http://www.shnenglu.com/dawnbreak/articles/67851.html</guid><wfw:comment>http://www.shnenglu.com/dawnbreak/comments/67851.html</wfw:comment><comments>http://www.shnenglu.com/dawnbreak/articles/67851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/dawnbreak/comments/commentRss/67851.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/dawnbreak/services/trackbacks/67851.html</trackback:ping><description><![CDATA[<p>对一l文件中的每一个文件执行某个特定命令?/p> <p>FOR %variable IN (set) DO command [command-parameters]</p> <p>  %variable  指定一个单一字母可替换的参数?br>  (set)      指定一个或一l文件。可以用通配W?br>  command    指定Ҏ(gu)个文件执行的命o?br>  command-parameters<br>             为特定命令指定参数或命o行开兟?/p> <p>在批处理E序中?FOR 命oӞ指定变量请?%%variable<br>而不要用 %variable。变量名U是区分大小写的Q所?%i 不同?%I.</p> <p>如果命o扩展被启用,下列额外?FOR 命o格式会受?br>支持:</p> <p>FOR /D %variable IN (set) DO command [command-parameters]</p> <p>    如果集中包含通配W,则指定与目录名匹配,而不与文?br>    名匹配?/p> <p>FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]</p> <p>    查以 [drive:]path 为根的目录树Q指向每个目录中?br>    FOR 语句。如果在 /R 后没有指定目录,则用当?br>    目录。如果集仅ؓ一个单?.)字符Q则枚D该目录树?/p> <p>FOR /L %variable IN (start,step,end) DO command [command-parameters]</p> <p>    该集表示以增量Ş式从开始到l束的一个数字序列?br>    因此Q?1,1,5) 生序?1 2 3 4 5Q?5,-1,1) ?br>    序列 (5 4 3 2 1)?/p> <p>FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]<br>FOR /F ["options"] %variable IN ("string") DO command [command-parameters]<br>FOR /F ["options"] %variable IN ('command') DO command [command-parameters]</p> <p>    或者,如果?usebackq 选项:</p> <p>FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]<br>FOR /F ["options"] %variable IN ("string") DO command [command-parameters]<br>FOR /F ["options"] %variable IN ('command') DO command [command-parameters]</p> <p>    filenameset Z个或多个文g名。l到 filenameset 中的<br>   下一个文件之前,每䆾文g都已被打开、读取ƈl过处理?br>    处理包括d文gQ将其分成一行行的文字,然后每?br>    解析成零或更多的W号。然后用已找到的W号字符串变量?br>    调用 For 循环。以默认方式Q?F 通过每个文g的每一行中分开<br>    的第一个空白符受蟩q空白行。?zhn)可通过指定可?"options"<br>    参数替代默认解析操作。这个带引号的字W串包括一个或多个<br>    指定不同解析选项的关键字。这些关键字?</p> <p>        eol=c           - 指一个行注释字符的结?׃?<br>        skip=n          - 指在文g开始时忽略的行数?br>        delims=xxx      - 指分隔符集。这个替换了I格和蟩格键?br>                          默认分隔W集?br>        tokens=x,y,m-n  - 指每行的哪一个符可传递到每个q代<br>                          ?for 本n。这会导致额外变量名U的分配。m-n<br>                          格式Z个范围。通过 nth W号指定 mth。如?br>                          W号字符串中的最后一个字W星P<br>                          那么额外的变量将在最后一个符可析之?br>                          分配q接受行的保留文本?br>        usebackq        - 指定新语法已在下cL况中使用:<br>                          在作为命令执行一个后引号的字W串q且一个单<br>                          引号字符为文字字W串命oq允许在 filenameset<br>                          中用双引号扩v文g名称?/p> <p>    某些范例可能有助:</p> <p>FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k</p> <p>    会分?myfile.txt 中的每一行,忽略以分h头的那些行,?br>    每行中的W二个和W三个符号传递给 for 函数体,用逗号??br>    I格分隔W号。请注意Q此 for 函数体的语句引用 %i ?br>    获得W二个符P引用 %j 来获得第三个W号Q引?%k<br>    来获得第三个W号后的所有剩余符受对于带有空格的文g<br>    名,(zhn)需要用双引号将文g名括h。ؓ了用q种方式来<br>    用双引号Q还需要?usebackq 选项Q否则,双引号会<br>    被理解成是用作定义某个要分析的字W串的?/p> <p>    %i ?for 语句中显式声明,%j ?%k 是通过<br>    tokens= 选项隐式声明的。可以通过 tokens= 一?br>    指定最?26 个符P只要不试囑֣明一个高于字?"z" ?br>    "Z" 的变量。请CQFOR 变量是单一字母、分大小写和全局的变量;<br>    而且Q不能同时用超q?52 个?/p> <p>    q可以在盔R字符串上使用 FOR /F 分析逻辑Q方法是Q?br>    用单引号括号之间的 filenameset 括v来。这P该字W?br>    串会被当作一个文件中的一个单一输入行进行解析?/p> <p>    最后,可以?FOR /F 命o来分析命令的输出。方法是Q将<br>    括号之间?filenameset 变成一个反括字W串。该字符串会<br>    被当作命令行Q传递到一个子 CMD.EXEQ其输出会被捕获?br>    内存中,q被当作文g分析。如以下例子所C?</p> <p>      FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i</p> <p>    会枚丑ֽ前环境中的环境变量名U?/p> <p>另外QFOR 变量参照的替换已被增强。?zhn)现在可以使用下?br>选项语法:</p> <p>     %~I          - 删除M引号(")Q扩?%I<br>     %~fI        - ?%I 扩展C个完全合格的路径?br>     %~dI        - 仅将 %I 扩展C个驱动器?br>     %~pI        - 仅将 %I 扩展C个\?br>     %~nI        - 仅将 %I 扩展C个文件名<br>     %~xI        - 仅将 %I 扩展C个文件扩展名<br>     %~sI        - 扩展的\径只含有短名<br>     %~aI        - ?%I 扩展到文件的文g属?br>     %~tI        - ?%I 扩展到文件的日期/旉<br>     %~zI        - ?%I 扩展到文件的大小<br>     %~$PATH:I   - 查找列在路径环境变量的目录,q将 %I 扩展<br>                   到找到的W一个完全合格的名称。如果环境变量名<br>                   未被定义Q或者没有找到文Ӟ此组合键会扩展到<br>                   I字W串</p> <p>可以l合修饰W来得到多重l果:</p> <p>     %~dpI       - 仅将 %I 扩展C个驱动器号和路径<br>     %~nxI       - 仅将 %I 扩展C个文件名和扩展名<br>     %~fsI       - 仅将 %I 扩展C个带有短名的完整路径?br>     %~dp$PATH:I - 搜烦列在路径环境变量的目录,q将 %I 扩展<br>                   到找到的W一个驱动器号和路径?br>     %~ftzaI     - ?%I 扩展到类D出线路的 DIR</p> <p>在以上例子中Q?I ?PATH 可用其他有效数gѝ?~ 语法<br>用一个有效的 FOR 变量名终止。选取cM %I 的大写变量名<br>比较易读Q而且避免与不分大写的组合键h?/p> <img src ="http://www.shnenglu.com/dawnbreak/aggbug/67851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/dawnbreak/" target="_blank">pear_li</a> 2008-11-25 22:00 <a href="http://www.shnenglu.com/dawnbreak/articles/67851.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.2268.net.cn" target="_blank">޳avƬþ</a>| <a href="http://www.zjjhart.cn" target="_blank">ɫ͵͵888ŷƷþþ</a>| <a href="http://www.cnshscj.cn" target="_blank">ĻþþƷAPP </a>| <a href="http://www.gll-gx.cn" target="_blank">99þ99þþƷѿ</a>| <a href="http://www.ubiy.cn" target="_blank">91ƷѾþþþþþþ</a>| <a href="http://www.txhyhf.cn" target="_blank">ŷ޾Ʒ˾þԻӰƬ</a>| <a href="http://www.seomajor.cn" target="_blank">˾þں2019 </a>| <a href="http://www.pr010.cn" target="_blank">99Ʒþþþþþ</a>| <a href="http://www.likyh.cn" target="_blank">ھƷþþþþþþ</a>| <a href="http://www.ndali.cn" target="_blank">9þ9þþƷ</a>| <a href="http://www.pu89.cn" target="_blank">޹Ʒþþþþ</a>| <a href="http://www.zhe38.cn" target="_blank">Ʒ999þþþþĻ</a>| <a href="http://www.yrwe981.cn" target="_blank">ëƬŷëƬþþ</a>| <a href="http://www.dlhybjgs.cn" target="_blank">ŷպۺϾþ</a>| <a href="http://www.yk999.cn" target="_blank">þþƷӰѿ</a>| <a href="http://www.daocheyingxiang.cn" target="_blank">þó˹Ʒ</a>| <a href="http://www.92kv.cn" target="_blank">˺ݺۺϾþ88</a>| <a href="http://www.hzlike.cn" target="_blank">þþƷһ</a>| <a href="http://www.ebianlian.cn" target="_blank">97rþþƷ99</a>| <a href="http://www.bjsdmngs.cn" target="_blank">þ͵wcŮ</a>| <a href="http://www.gg4493.cn" target="_blank">鶹AVһþ </a>| <a href="http://www.168sf.com.cn" target="_blank">þˬһ</a>| <a href="http://www.ramar.com.cn" target="_blank">Ʒ99þþþþö</a>| <a href="http://www.ixlg.cn" target="_blank">91޹˾þþƷ</a>| <a href="http://www.dashu0.com.cn" target="_blank">Ļþ</a>| <a href="http://www.xyp020.cn" target="_blank">Ʒþþþþþþþ</a>| <a href="http://www.tzfxw.cn" target="_blank">Ʒþۺ123</a>| <a href="http://www.ffsqblcj.cn" target="_blank">Ʒþþþþ</a>| <a href="http://www.grayhound.cn" target="_blank">þþþþþۺձ</a>| <a href="http://www.sxstreet.cn" target="_blank">þþþùAV鶹</a>| <a href="http://www.cq81.cn" target="_blank">޾Ʒtvþþþ</a>| <a href="http://www.17779.com.cn" target="_blank">޺ݺۺϾþѿ </a>| <a href="http://www.tianyacity.cn" target="_blank">þþþþëƬѿ</a>| <a href="http://www.eca2000.cn" target="_blank">þþþAVۺϲҰ </a>| <a href="http://www.veixzew.cn" target="_blank">91þùƵ</a>| <a href="http://www.950aw.cn" target="_blank">2020˾þþƷ</a>| <a href="http://www.showfans.com.cn" target="_blank">99þùں;Ʒ1ӳ</a>| <a href="http://www.popotang.cn" target="_blank">þþþƷsmվ </a>| <a href="http://www.yjpute.cn" target="_blank">þ99Ʒ</a>| <a href="http://www.kmqqk.cn" target="_blank">һһþaþþƷۺ</a>| <a href="http://www.ea52.cn" target="_blank">ƷþþþþĻ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>