Windows XP中的命令行界面Word文档下载推荐.docx

上传人:b****6 文档编号:20097003 上传时间:2023-01-16 格式:DOCX 页数:17 大小:25.75KB
下载 相关 举报
Windows XP中的命令行界面Word文档下载推荐.docx_第1页
第1页 / 共17页
Windows XP中的命令行界面Word文档下载推荐.docx_第2页
第2页 / 共17页
Windows XP中的命令行界面Word文档下载推荐.docx_第3页
第3页 / 共17页
Windows XP中的命令行界面Word文档下载推荐.docx_第4页
第4页 / 共17页
Windows XP中的命令行界面Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Windows XP中的命令行界面Word文档下载推荐.docx

《Windows XP中的命令行界面Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Windows XP中的命令行界面Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

Windows XP中的命令行界面Word文档下载推荐.docx

并且,由于

兼容原因,/X与/E:

ON相同,/Y与/E:

OFF相同,并且/R与/C相同。

忽略任何其他命令

行开关。

如果指定了/C或/K,命令行开关后的命令行其余部分将作为命令行处理;

在这种

情况下,会使用下列逻辑处理引号字符("

):

  1.如果符合下列所有条件,那么在命令行上的引号字符将被

    保留:

    -不带/S命令行开关

    -整整两个引号字符

    -在两个引号字符之间没有特殊字符,特殊字符为下列中的

     一个:

(大于符号)

  $H  Backspace(擦除前一个字符)

  $L  >

       -逻辑移位

            -按位“与”

  ^         -按位“异”

  |         -按位“或”

  =*=/=%=+=-=-赋值

  &

=^=|=>

=

            -表达式分隔符

  如果您使用任何逻辑或取余操作符,您需要将表达式字符串用引号扩起来。

在表达式中

的任何非数字字符串键作为环境变量名称,这些环境变量名称的值已在使用前转换成数字。

果指定了一个环境变量名称,但未在当前环境中定义,那么值将被定为零。

这使您可以使用环

境变量值做计算而不用键入那些%符号来得到它们的值。

如果SET/A在命令脚本外的命令

行执行的,那么它显示该表达式的最后值。

该分配的操作符在分配的操作符左边需要一个环境

变量名称。

除十六进制有0x前缀,八进制有0前缀的,数字值为十进位数字。

因此,0x1

2与18和022相同。

请注意八进制公式可能很容易搞混:

08和09是无效的数字,因为8

和9不是有效的八进制位数。

  /P命令行开关允许将变量数值设成用户输入的一行输入。

读取输入行之前,显示指定的

promptString。

promptString可以是空的。

  环境变量替换已如下增强:

  %PATH:

str1=str2%

  会扩展PATH环境变量,用"

str2"

代替扩展结果中的每个"

str1"

  要有效地从扩展结果中删除所有的"

,"

可以是空的。

  "

可以以星号打头;

在这种情况下,"

会从扩展结果的开始到str1剩余部分

第一次出现的地方,都一直保持相配。

  也可以为扩展名指定子字符串。

~10,5%

  会扩展PATH环境变量,然后只使用在扩展结果中从第11个(偏移量10)字符开始的五

个字符。

如果没有指定长度,则采用默认值,即变量数值的余数。

如果两个数字(偏移量和长

度)都是负数,使用的数字则是环境变量数值长度加上指定的偏移量或长度。

~-10%

  会提取PATH变量的最后十个字符。

~0,-2%

  会提取PATH变量的所有字符,除了最后两个。

  终于添加了延迟环境变量扩充的支持。

该支持总是按默认值被停用,但也可以通过CMD.

EXE的/V命令行开关而被启用/停用。

  考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境变量扩充是很有用的,而不

是执行的时候。

以下例子说明直接变量扩充的问题:

  setVAR=before

  if"

%VAR%"

=="

before"

    setVAR=after

    if"

after"

@echoIfyouseethis,itworked

  )

  不会显示消息,因为在读到第一个IF语句时,BOTHIF语句中的%VAR%会被代替;

因是:

它包含IF的文体,IF是一个复合语句。

所以,复合语句中的IF实际上是在比较"

和"

,这两者永远不会相等。

同样,以下这个例子也不会达到预期效果:

  setLIST=

  for%iin(*)dosetLIST=%LIST%%i

  echo%LIST%

  原因是它不会在目前的目录中建立一个文件列表,而只是将LIST变量设成找到的最后一

个文件。

这也是因为%LIST%在FOR语句被读取时,只被扩充了一次;

而且,那时的LIST变

量是空的。

因此,我们真正执行的FOR循环是:

  for%iin(*)dosetLIST=%i

  这个循环继续将LIST设成找到的最后一个文件。

  延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行时间扩充环境变量。

如果延

迟的变量扩充被启用,可以将上面例子写成以下所示,以达到预期效果:

!

VAR!

"

  for%iin(*)dosetLIST=!

LIST!

%i

  如果命令扩展名被启用,有几个动态环境变量可以被扩展,但不会出现在SET显示的变

量列表中。

每次变量数值被扩展时,这些变量数值都会被动态计算。

如果用户用这些名称中任

何一个定义变量,那个定义会替代下面描述的动态定义:

  %CD%-扩展到当前目录字符串。

  %DATE%-用跟DATE命令同样的格式扩展到当前日期。

  %TIME%-用跟TIME命令同样的格式扩展到当前时间。

  %RANDOM%-扩展到0和32767之间的任意十进制数字。

  %ERRORLEVEL%-扩展到当前ERRORLEVEL数值。

  %CMDEXTVERSION%-扩展到当前命令处理器扩展名版本号。

  %CMDCMDLINE%-扩展到调用命令处理器的原始命令行。

  9、SETLOCAL

  开始批处理文件中环境改动的本地化操作。

在执行SETLOCAL之后所做的环境改动只限于

批处理文件。

要还原原先的设置,必须执行ENDLOCAL。

达到批处理文件结尾时,对于该批处

理文件的每个尚未执行的SETLOCAL命令,都会有一个隐含的ENDLOCAL被执行。

  SETLOCAL

  如果命令扩展名被启用,SETLOCAL会如下改变:

  SETLOCAL批命令现在可以接受可选参数:

ENABLEEXTENSIONS/DISABLEEXTENSIONS

    启动或停用命令处理器扩展名。

详细信息,请参阅CMD/?

    ENABLEDELAYEDEXPANSION/DISABLEDELAYEDEXPANSION

      启动或停用延缓环境变量扩展名。

详细信息,请

      参阅对SET的介绍。

  无论在SETLOCAL命令之前它们的设置是什么,这些修改会一直保留到匹配的ENDLOCAL

命令。

  如果有一个参数,SETLOCAL命令将设置ERRORLEVEL的值。

  如果有两个有效参数中的一个,该值则为零。

用下列技巧,您可以在批脚本中使用这个来

决定扩展名是否可用:

  VERIFYOTHER2>

nul

  SETLOCALENABLEEXTENSIONS

  IFERRORLEVEL1echoUnabletoenableextensions

  这个方法之所以有效,是因为在CMD.EXE的旧版本上,SETLOCAL不设置ERRORLEVEL值

具有不正确参数的VERIFY命令将ERRORLEVEL值初始化成非零值。

  10、ENDLOCAL

  结束批处理文件中环境改动的本地化操作。

在执行ENDLOCAL之后所做的环境改动不再仅

限于批处理文件。

批处理文件结束后,原先的设置无法还原。

  ENDLOCAL

  如果命令扩展名被启用,ENDLOCAL会如下改变:

  如果相应的SETLOCAL用新的ENABLEEXTENSIONS或DISABLEEXTENSIONS选项启用或停用

了命令扩展名,那么,在ENDLOCAL之后,命令扩展名的启用/停用状态会还原到执行相应的

SETLOCAL命令前的状态。

  11、IF

  执行批处理程序中的条件处理。

  IF[NOT]ERRORLEVELnumbercommand

  IF[NOT]string1==string2command

  IF[NOT]EXISTfilenamecommand

  NOT      指定只有条件为false的情况下,WindowsXP才

         应该执行该命令。

  ERRORLEVELnumber如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定

条件为true。

  string1==string2如果指定的文字字符串匹配,指定条件为true。

  EXISTfilename  如果指定的文件名存在,指定条件为true。

  command     如果符合条件,指定要执行的命令。

如果指定的

条件为FALSE,命令后可跟一个执行ELSE

关键字后的命令的ELSE命令。

  ELSE子句必须在IF之后出现在同一行上。

例如:

  IFEXISTfilename.(

    delfilename.

  )ELSE(

    echofilename.missing.

  因为del命令需要用一个新行终止,以下子句不会有效:

  IFEXISTfilename.delfilename.ELSEechofilename.missing

  由于ELSE命令必须与IF命令的尾端在同一行上,以下子句也不会有效:

  IFEXISTfilename.delfilename.

  ELSEechofilename.missing

  如果都放在同一行上,以下子句有效:

  IFEXISTfilename.(delfilename.)ELSEechofilename.missing

  如果命令扩展名被启用,IF会如下改变:

  IFstring1compare-opstring2command

  IFCMDEXTVERSIONnumbercommand

  IFDEFINEDvariablecommand

  其中,比较运算符可以是:

  EQU-等于

  NEQ-不等于

  LSS-小于

  LEQ-小于或等于

  GTR-大于

  GEQ-大于或等于

  及/I开关;

如果该开关被指定,则说明要进行的字符串比较不分大小写。

/I开关可以

用于IF的string1==string2的形式上。

这些比较都是通用的;

原因是,如果string1和

string2都是由数字组成的,字符串会被转换成数字,进行数字比较。

  CMDEXTVERSION条件的作用跟ERRORLEVEL的一样,除了它是在跟与命令扩展名有关联的

内部版本号比较。

第一个版本是1。

每次对命令扩展名有相当大的增强时,版本号会增加一个

  命令扩展名被停用时,CMDEXTVERSION条件不是真的。

  如果已定义环境变量,DEFINED条件的作用跟EXISTS的一样,除了它取得一个环境变量

,返回的结果是true。

  如果没有名为ERRORLEVEL的环境变量,%ERRORLEVEL%会扩充为ERROLEVEL当前数值的

字符串表达式;

否则,您会得到其数值。

运行程序后,以下语句说明ERRORLEVEL的用法:

  gotoanswer%ERRORLEVEL%

  :

answer0

echoProgramhadreturncode0

answer1

  echoProgramhadreturncode1

  您也可以使用以上的数字比较:

  IF%ERRORLEVEL%LEQ1gotookay

  如果没有名为CMDCMDLINE的环境变量,%CMDCMDLINE%将在CMD.EXE进行任何处理前扩

充为传递给CMD.EXE的原始命令行;

  如果没有名为CMDEXTVERSION的环境变量,%CMDEXTVERSION%会扩充为CMDEXTVERSION

当前数值的

字串符表达式;

  12、FOR

  FOR%variableIN(set)DOcommand[command-parameters]

  %variable指定一个单一字母可替换的参数。

  (set)   指定一个或一组文件。

可以使用通配符。

  command  指定对每个文件执行的命令。

  command-parameters

      为特定命令指定参数或命令行开关。

  在批处理文件中使用FOR命令时,指定变量请使用%%variable而不要用%variable。

量名称是区分大小写的,所以%i不同于%I.如果命令扩展名被启用,下列额外的FOR命令

格式会受到支持:

  FOR/D%variableIN(set)DOcommand[command-parameters]

  如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。

  FOR/R[[drive:

]path]%variableIN(set)DOcommand[command-parameters]

  检查以[drive:

]path为根的目录树,指向每个目录中的FOR语句。

如果在/R后没有指

定目录,则使用当前目录。

如果集仅为一个单点(.)字符,则枚举该目录树。

  FOR/L%variableIN(start,step,end)DOcommand[command-parameters]

  该集表示以增量形式从开始到结束的一个数字序列。

  因此,(1,1,5)将产生序列12345,(5,-1,1)将产生序列(54321)。

  FOR/F["

options"

]%variableIN(file-set)DOcommand[command-parameters]

]%variableIN("

string"

)DOcommand[command-parameters]

]%variableIN('

command'

  或者,如果有usebackq选项:

  filenameset为一个或多个文件名。

继续到filenameset中的下一个文件之前,每份文

件都已被打开、读取并经过处理。

  处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。

然后用

已找到的符号字符串变量值调用For循环。

以默认方式,/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=,"

%iin(myfile.txt)do@echo%i%j%k

  会分析myfile.txt中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个

符号传递给for程序体;

用逗号和/或空格定界符号。

请注意,这个for程序体的语句引用

%i来取得第二个符号,引用%j来取得第三个符号,引用%k来取得第三个符号后的所有剩

余符号。

对于带有空格的文件名,您需要用双引号将文件名括起来。

为了用这种方式来使用双

引号,您还需要使用usebackq选项,否则,双引号会被理解成是用作定义某个要分析的字符

串的。

  %i专门在for语句中得到说明,%j和%k是通过tokens=选项专门得到说明的。

您可

以通过tokens=一行指定最多26个符号,只要不试图说明一个高于字母'

z'

或'

Z'

的变量

请记住,FOR变量是单一字母、分大小写和全局的;

而且,同时不能有52个以上都在使用

中。

  您还可以在相邻字符串上使用FOR/F分析逻辑;

方法是,用单引号将括号之间的file

nameset括起来。

这样,该字符串会被当作一个文件中的一个单一输入行。

  最后,您可以用FOR/F命令来分析命令的输出。

方法是,将括号之间的filenameset

变成一个反括字符串。

该字符串会被当作命令行,传递到一个子CMD.EXE,其输出会被抓进内

存,并被当作文件分析。

因此,以下例子:

usebackqdelims=="

%iIN(`set`)DO@echo%i

  会枚举当前环境中的环境变量名称。

  另外,FOR变量参照的替换已被增强。

您现在可以使用下列选项语法:

  ~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

  在以上例子中,%I和PATH可用其他有效数值代替。

%~语法用一个有效的FOR变量名

终止。

选取类似%I的大写变量名比较易读,而且避免与不分大小写的组合键混淆。

  13、CALL

  从批处理程序调用另一个批处理程序。

  CALL[drive:

][path]filename[batch-parameters]

  batch-parameters指定批处理程序所需的命令行信息。

  如果命令扩展名被启用,CALL会如下改变:

  CALL命令现在将卷标当作CALL的目标接受。

语法是:

  CALL:

labelarguments

  一个新的批文件上下文由指定的参数所创建,控制在卷标被指定后传递到语句。

您必须通

过达到批脚本文件末两次来"

exit"

两次。

  第一次读到文件末时,控制会回到CALL语句的紧后面。

第二次会退出批脚本。

键入GO

TO/?

,参看GOTO:

EOF扩展名的描述,此描述允许您从一个批脚本返回。

  另外,批脚本文本参数参照(%0、%1、等等)已如下改变:

  批脚本里的%*指出所有的参数(如%1%2%3%4%5...)

  批参数(%n)的替代已被增强。

您可以使用以下语法:

  %~1    -删除引号("

),扩充%1

  %~f1   -将%1扩充到一个完全合格的路径名

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1