批处理命令帮助.docx
- 文档编号:17824583
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:35
- 大小:31.49KB
批处理命令帮助.docx
《批处理命令帮助.docx》由会员分享,可在线阅读,更多相关《批处理命令帮助.docx(35页珍藏版)》请在冰点文库上搜索。
批处理命令帮助
MOVE/?
移动文件并重命名文件和目录。
要移动至少一个文件:
MOVE[/Y|/-Y][drive:
][path]filename1[,...]destination
要重命名一个目录:
MOVE[/Y|/-Y][drive:
][path]dirname1dirname2
[drive:
][path]filename1指定您想移动的文件位置和名称。
destination指定文件的新位置。
目标可包含一个驱动器号
和冒号、一个目录名或组合。
如果只移动一个文件
并在移动时将其重命名,您还可以包括文件名。
[drive:
][path]dirname1指定要重命名的目录。
dirname2指定目录的新名称。
/Y取消确认改写一个现有目标文件的提示。
/-Y对确认改写一个现有目标文件发出提示。
命令行开关/Y可以出现在COPYCMD环境变量中。
这可以用命令行上
的/-Y替代。
默认值是,除非MOVE命令是从一个批脚本内
执行的,改写时都发出提示。
COPY/?
将一份或多份文件复制到另一个位置。
COPY[/D][/V][/N][/Y|/-Y][/Z][/A|/B]source[/A|/B]
[+source[/A|/B][+...]][destination[/A|/B]]
source指定要复制的文件。
/A表示一个ASCII文本文件。
/B表示一个二进位文件。
/D允许解密要创建的目标文件
destination为新文件指定目录和/或文件名。
/V验证新文件写入是否正确。
/N复制带有非8dot3名称的文件时,
尽可能使用短文件名。
/Y不使用确认是否要改写现有目标文件
的提示。
/-Y使用确认是否要改写现有目标文件
的提示。
/Z用可重新启动模式复制已联网的文件。
命令行开关/Y可以在COPYCMD环境变量中预先设定。
这可能会被命令行上的/-Y替代。
除非COPY
命令是在一个批文件脚本中执行的,默认值应为
在改写时进行提示。
要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或file1+file2+file3格式)。
DEL/?
删除一个或数个文件。
DEL[/P][/F][/S][/Q][/A[[:
]attributes]]names
ERASE[/P][/F][/S][/Q][/A[[:
]attributes]]names
names指定一个或数个文件或目录列表。
通配符可被用来
删除多个文件。
如果指定了一个目录,目录中的所
有文件都会被删除。
/P删除每一个文件之前提示确认。
/F强制删除只读文件。
/S从所有子目录删除指定文件。
/Q安静模式。
删除全局通配符时,不要求确认。
/A根据属性选择要删除的文件。
attributesR只读文件S系统文件
H隐藏文件A存档文件
-表示“否”的前缀
如果命令扩展名被启用,DEL和ERASE会如下改变:
/S开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。
AT/?
AT命令安排在特定日期和时间运行命令和程序。
要使用AT命令,计划服务必须已在运行中。
AT[\\computername][[id][/DELETE]|/DELETE[/YES]]
AT[\\computername]time[/INTERACTIVE]
[/EVERY:
date[,...]|/NEXT:
date[,...]]"command"
\\computername指定远程计算机。
如果省略这个参数,
会计划在本地计算机上运行命令。
id指定给已计划命令的识别号。
/delete删除某个已计划的命令。
如果省略id,
计算机上所有已计划的命令都会被删除。
/yes不需要进一步确认时,跟删除所有作业
的命令一起使用。
time指定运行命令的时间。
/interactive允许作业在运行时,与当时登录的用户
桌面进行交互。
/every:
date[,...]每个月或每个星期在指定的日期运行命
令。
如果省略日期,则默认为在每月的
本日运行。
/next:
date[,...]指定在下一个指定日期(如,下周四)运
行命令。
如果省略日期,则默认为在每
月的本日运行。
"command"准备运行的WindowsNT命令或批处理
程序。
TIME[/T|time]
显示当前时间设置和输入新时间的提示,请键入
不带参数的TIME。
要保留现有时间,请按ENTER。
如果命令扩展名被启用,DATE命令会支持/T命令行开关;该命令行开关告诉
命令只输出当前时间,但不提示输出新时间。
DATE[/T|date]
显示当前日期设置和输入新日期的提示,请键入
不带参数的DATE。
要保留现有日期,请按ENTER。
如果命令扩展名被启用,DATE命令会支持/T开关;
该开关指示命令只输出当前日期,但不提示输出新日期。
GOTO/?
将cmd.exe导向到批处理程序中带标签的行。
GOTOlabel
label指定批处理程序中用作标签的文字字符串。
标签必须单独一行,并且以冒号打头。
如果命令扩展名被启用,GOTO会如下改变:
GOTO命令现在接受目标标签:
EOF,这个标签将控制转移到当前
批脚本文件的结尾。
不定义就退出批脚本文件,这是一个容易的
办法。
有关能使该功能有用的CALL命令的扩展名描述,请键入
CALL/?
。
CALL/?
从批处理程序调用另一个批处理程序。
CALL[drive:
][path]filename[batch-parameters]
batch-parameters指定批处理程序所需的命令行信息。
如果命令扩展名被启用,CALL会如下改变:
CALL命令现在将卷标当作CALL的目标接受。
语法是:
CALL:
labelarguments
一个新的批文件上下文由指定的参数所创建,控制在卷标被指定
后传递到语句。
您必须通过达到批脚本文件末两次来"exit"两次。
第一次读到文件末时,控制会回到CALL语句的紧后面。
第二次
会退出批脚本。
键入GOTO/?
,参看GOTO:
EOF扩展名的描述,
此描述允许您从一个批脚本返回。
另外,批脚本文本参数参照(%0、%1、等等)已如下改变:
批脚本里的%*指出所有的参数(如%1%2%3%4%5...)
批参数(%n)的替代已被增强。
您可以使用以下语法:
%~1-删除引号("),扩充%1
%~f1-将%1扩充到一个完全合格的路径名
%~d1-仅将%1扩充到一个驱动器号
%~p1-仅将%1扩充到一个路径
%~n1-仅将%1扩充到一个文件名
%~x1-仅将%1扩充到一个文件扩展名
%~s1-扩充的路径指含有短名
%~a1-将%1扩充到文件属性
%~t1-将%1扩充到文件的日期/时间
%~z1-将%1扩充到文件的大小
%~$PATH:
1-查找列在PATH环境变量的目录,并将%1
扩充到找到的第一个完全合格的名称。
如果环境
变量名未被定义,或者没有找到文件,此组合键会
扩充到空字符串
可以组合修定符来取得多重结果:
%~dp1-只将%1扩展到驱动器号和路径
%~nx1-只将%1扩展到文件名和扩展名
%~dp$PATH:
1-在列在PATH环境变量中的目录里查找%1,
并扩展到找到的第一个文件的驱动器号和路径。
%~ftza1-将%1扩展到类似DIR的输出行。
在上面的例子中,%1和PATH可以被其他有效数值替换。
%~语法被一个有效参数号码终止。
%~修定符不能跟%*
使用
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]
FOR/F["options"]%variableIN("string")DOcommand[command-parameters]
FOR/F["options"]%variableIN('command')DOcommand[command-parameters]
或者,如果有usebackq选项:
FOR/F["options"]%variableIN(file-set)DOcommand[command-parameters]
FOR/F["options"]%variableIN("string")DOcommand[command-parameters]
FOR/F["options"]%variableIN('command')DOcommand[command-parameters]
filenameset为一个或多个文件名。
继续到filenameset中的
下一个文件之前,每份文件都已被打开、读取并经过处理。
处理包括读取文件,将其分成一行行的文字,然后将每行
解析成零或更多的符号。
然后用已找到的符号字符串变量值
调用For循环。
以默认方式,/F通过每个文件的每一行中分开
的第一个空白符号。
跳过空白行。
您可通过指定可选"options"
参数替代默认解析操作。
这个带引号的字符串包括一个或多个
指定不同解析选项的关键字。
这些关键字为:
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分析逻辑;方法是,
用单引号将括号之间的filenameset括起来。
这样,该字符
串会被当作一个文件中的一个单一输入行。
最后,您可以用FOR/F命令来分析命令的输出。
方法是,将
括号之间的filenameset变成一个反括字符串。
该字符串会
被当作命令行,传递到一个子CMD.EXE,其输出会被抓进
内存,并被当作文件分析。
因此,以下例子:
FOR/F"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的大写变量名
比较易读,而且避免与不分大小写的组合键混淆。
SET/?
显示、设置或删除cmd.exe环境变量。
SET[variable=[string]]
variable指定环境变量名。
string指定要指派给变量的一系列字符串。
要显示当前环境变量,键入不带参数的SET。
如果命令扩展名被启用,SET会如下改变:
可仅用一个变量激活SET命令,等号或值不显示所有前缀匹配
SET命令已使用的名称的所有变量的值。
例如:
SETP
会显示所有以字母P打头的变量
如果在当前环境中找不到该变量名称,SET命令将把ERRORLEVEL
设置成1。
SET命令不允许变量名含有等号。
在SET命令中添加了两个新命令行开关:
SET/Aexpression
SET/Pvariable=[promptString]
/A命令行开关指定等号右边的字符串为被评估的数字表达式。
该表达式
评估器很简单并以递减的优先权顺序支持下列操作:
()-分组
!
~--一元运算符
*/%-算数运算符
+--算数运算符
<<>>-逻辑移位
-按位“与”
^-按位“异”
|-按位“或”
=*=/=%=+=-=-赋值
&=^=|=<<=>>=
-表达式分隔符
如果您使用任何逻辑或取余操作符,您需要将表达式字符串用
引号扩起来。
在表达式中的任何非数字字符串键作为环境变量
名称,这些环境变量名称的值已在使用前转换成数字。
如果指定
了一个环境变量名称,但未在当前环境中定义,那么值将被定为
零。
这使您可以使用环境变量值做计算而不用键入那些%符号
来得到它们的值。
如果SET/A在命令脚本外的命令行执行的,
那么它显示该表达式的最后值。
该分配的操作符在分配的操作符
左边需要一个环境变量名称。
除十六进制有0x前缀,八进制
有0前缀的,数字值为十进位数字。
因此,0x12与18和022
相同。
请注意八进制公式可能很容易搞混:
08和09是无效的数字,
因为8和9不是有效的八进制位数。
/P命令行开关允许将变量数值设成用户输入的一行输入。
读取输入
行之前,显示指定的promptString。
promptString可以是空的。
环境变量替换已如下增强:
%PATH:
str1=str2%
会扩展PATH环境变量,用"str2"代替扩展结果中的每个"str1"。
要有效地从扩展结果中删除所有的"str1","str2"可以是空的。
"str1"可以以星号打头;在这种情况下,"str1"会从扩展结果的
开始到str1剩余部分第一次出现的地方,都一直保持相配。
也可以为扩展名指定子字符串。
%PATH:
~10,5%
会扩展PATH环境变量,然后只使用在扩展结果中从第11个(偏
移量10)字符开始的五个字符。
如果没有指定长度,则采用默认
值,即变量数值的余数。
如果两个数字(偏移量和长度)都是负数,
使用的数字则是环境变量数值长度加上指定的偏移量或长度。
%PATH:
~-10%
会提取PATH变量的最后十个字符。
%PATH:
~0,-2%
会提取PATH变量的所有字符,除了最后两个。
终于添加了延迟环境变量扩充的支持。
该支持总是按默认值被
停用,但也可以通过CMD.EXE的/V命令行开关而被启用/停用。
请参阅CMD/?
考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境
变量扩充是很有用的,而不是执行的时候。
以下例子说明直接
变量扩充的问题:
setVAR=before
if"%VAR%"=="before"(
setVAR=after
if"%VAR%"=="after"@echoIfyouseethis,itworked
)
不会显示消息,因为在读到第一个IF语句时,BOTHIF语句中
的%VAR%会被代替;原因是:
它包含IF的文体,IF是一个
复合语句。
所以,复合语句中的IF实际上是在比较"before"和
"after",这两者永远不会相等。
同样,以下这个例子也不会达到
预期效果:
setLIST=
for%iin(*)dosetLIST=%LIST%%i
echo%LIST%
原因是,它不会在目前的目录中建立一个文件列表,而只是将
LIST变量设成找到的最后一个文件。
这也是因为%LIST%在
FOR语句被读取时,只被扩充了一次;而且,那时的LIST变量
是空的。
因此,我们真正执行的FOR循环是:
for%iin(*)dosetLIST=%i
这个循环继续将LIST设成找到的最后一个文件。
延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行
时间扩充环境变量。
如果延迟的变量扩充被启用,可以将上面
例子写成以下所示,以达到预期效果:
setVAR=before
if"%VAR%"=="before"(
setVAR=after
if"!
VAR!
"=="after"@echoIfyouseethis,itworked
)
setLIST=
for%iin(*)dosetLIST=!
LIST!
%i
echo%LIST%
如果命令扩展名被启用,有几个动态环境变量可以被扩展,但
不会出现在SET显示的变量列表中。
每次变量数值被扩展时,
这些变量数值都会被动态计算。
如果用户用这些名称中任何
一个定义变量,那个定义会替代下面描述的动态定义:
%CD%-扩展到当前目录字符串。
%DATE%-用跟DATE命令同样的格式扩展到当前日期。
%TIME%-用跟TIME命令同样的格式扩展到当前时间。
%RANDOM%-扩展到0和32767之间的任意十进制数字。
%ERRORLEVEL%-扩展到当前ERRORLEVEL数值。
%CMDEXTVERSION%-扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE%-扩展到调用命令处理器的原始命令行。
REGOperation[参数列表]
Operation[QUERY|ADD|DELETE|COPY|
SAVE|LOAD|UNLOAD|RESTORE|
COMPARE|EXPORT|IMPORT]
返回代码:
(除了REGCOMPARE)
0-成功
1-失败
要得到有关某个操作的帮助,请键入:
REGOperation/?
例如:
REGQUERY/?
REGADD/?
REGDELETE/?
REGCOPY/?
REGSAVE/?
REGRESTORE/?
REGLOAD/?
REGUNLOAD/?
REGCOMPARE/?
REGEXPORT/?
REGIMPORT/?
C:
\DocumentsandSettings\xuwd>
Window
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 批处理 命令 帮助