命令提示符操作功能.docx
- 文档编号:22988277
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:19
- 大小:31.33KB
命令提示符操作功能.docx
《命令提示符操作功能.docx》由会员分享,可在线阅读,更多相关《命令提示符操作功能.docx(19页珍藏版)》请在冰豆网上搜索。
命令提示符操作功能
命令提示符操作功能
教你怎样使用命令提示符
CMD[/A|/U][/Q][/D][/E:
ON|/E:
OFF][/F:
ON|/F:
OFF][/V:
ON|/V:
OFF][[/S][/C|/K]string]其中:
CMD是不可缺少的~/C执行字符串指定的命令然后终断/K执行字符串指定的命令但保留/S在/C或/K后修改字符串处理(见下)/Q关闭回应/D从注册表中停用执行AutoRun命令(见下)/A使向内部管道或文件命令的输出成为ANSI/U使向内部管道或文件命令的输出成为Unicode/T:
fg设置前景/背景颜色(详细信息,请见COLOR/?
)/E:
ON启用命令扩展(见下)/E:
OFF停用命令扩展(见下)/F:
ON启用文件和目录名称完成字符(见下)/F:
OFF停用文件和目录名称完成字符(见下)/V:
ON将!
作为定界符启动延缓环境变量扩展。
如:
/V:
ON会允许!
var!
在执行时允许!
var!
扩展变量var。
var语法在输入时扩展变量,这与在一个FOR循环内不同。
/V:
OFF停用延缓的环境扩展。
请注意,如果字符串有引号,可以接受用命令分隔符'&&'隔开的多个命令。
并且,由于兼容原因,/X与/E:
ON相同,/Y与/E:
OFF相同,并且/R与/C相同。
忽略任何其他命令行开关。
如果指定了/C或/K,命令行开关后的命令行其余部分将作为命令行处理;在这种情况下,会使用下列逻辑处理引号字符("):
1.如果符合下列所有条件,那么在命令行上的引号字符将被保留:
-不带/S命令行开关-整整两个引号字符-在两个引号字符之间没有特殊字符,特殊字符为下列中的一个:
<>()@^|-在两个引号字符之间有至少一个空白字符-在两个引号字符之间有至少一个可执行文件的名称。
2.否则,看第一个字符是否是一个引号字符,如果是,舍去开头的字符并删除命令行上的最后一个引号字符,保留最后一个引号字符之后的文字。
如果/D未在命令行上被指定,当CMD.EXE开始时,它会寻找以下REG_SZ/REG_EXPAND_SZ注册表变量。
如果其中一个或两个都存在,这两个变量会先被执行。
HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorAutoRun和/或HKEY_CURRENT_USERSoftwareMicrosoftCommandProcessorAutoRun命令扩展是按默认值启用的。
您也可以使用/E:
OFF,为某一特定调用而停用扩展。
您可以在机器上和/或用户登录会话上启用或停用CMD.EXE所有调用的扩展,这要通过设置使用REGEDT32.EXE的注册表中的一个或两个REG_DWORD值:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorEnableExtensions和/或HKEY_CURRENT_USERSoftwareMicrosoftCommand
ProcessorEnableExtensions到0x1或0x0。
用户特定设置比机器设置有优先权。
命令行开关比注册表设置有优先权。
以上是对于基本命令的介绍,下面包含的是命令行扩展部分。
延迟变量环境扩展不按默认值启用。
您可以用/V:
ON或/V:
OFF命令行开关,为CMD.EXE的某个调用而启用或停用延迟环境变量扩充。
您可以在机器上和/或用户登录会话上启用或停用CMD.EXE所有调用的完成,这要通过设置使用REGEDT32.EXE的注册表中的一个或两个REG_DWORD值:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorDelayedEXPansion和/或HKEY_CURRENT_USERSoftwareMicrosoftCommand
ProcessorDelayedEXPansion到0x1或0x0。
用户特定设置比机器设置有优先权。
命令行开关比注册表设置有优先权。
如果延迟环境变量扩充被启用,惊叹号字符可在执行时间,被用来代替一个环境变量的数值。
文件和目录名完成不按默认值启用。
您可以用/F:
ON或/F:
OFF命令行开关,为CMD.EXE的某个调用而启用或停用文件名完成。
您可以在机器上和/或用户登录会话上启用或停用CMD.EXE所有调用的完成,这要通过设置使用REGEDT32.EXE的注册表中的一个或两个REG_DWORD值:
顶312005-11-12
11:
03回复SSWNL7位粉丝2楼HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorCompletionCharHKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorPathCompletionChar和/或HKEY_CURRENT_USERSoftwareMicrosoftCommand
ProcessorCompletionCharHKEY_CURRENT_USERSoftwareMicrosoftCommand
ProcessorPathCompletionChar由一个控制字符的十六进制值作为一个特定参数(例如,0x4是Ctrl-D,0x6是Ctrl-F)。
用户特定设置优先于机器设置。
命令行开关优先于注册表设置。
如果完成是用/F:
ON命令行开关启用的,两个要使用的控制符是:
目录名字完成用Ctrl-D,文件名完成用Ctrl-F。
要停用注册表中的某个字符,请用空格(0x20)的数值,因为此字符不是控制字符。
如果键入两个控制字符中的一个,完成会被调用。
完成功能将路径字符串带到光标的左边,如果没有通配符,将通配符附加到左边,并建立相符的路径列表。
然后,显示第一个相符的路径。
如果没有相符的路径,则发出嘟嘟声,不影响显示。
之后,重复按同一个控制字符会循环显示相符路径的列表。
将Shift键跟控制字符同时按下,会倒着显示列表。
如果对该行进行了任何编辑,并再次按下控制字符,保存的相符路径的列表会被丢弃,新的会被生成。
如果在文件和目录名完成之间切换,会发生同样现象。
两个控制字符之间的唯一区别是文件完成字符符合文件和目录名,而目录完成字符只符合目录名。
如果文件完成被用于内置式目录命令(CD、MD或RD),就会使用目录完成。
将引号将相符路径括起来,完成代码可以正确处理含有空格或其他特殊字符的文件名。
同时,如果备份,然后从行内调用文件完成,完成被调用是位于光标右方的文字会被丢弃。
需要引号的特殊字符是:
&()[]{}^=;!
'+,`~下面是命令行扩展的详细应用方法介绍:
熟悉dos的朋友会发现许多内容和dos相同。
1、DEL或ERASE删除一个或数个文件。
DEL[/F][/S][/Q][/A[[:
]attributes]]namesERASE[/F][/S][/Q]
[/A[[:
]attributes]]namesnames指定一个或数个文件或目录列表。
通配符可被用来删除多个文件。
如果指定了一个目录,目录中的所有文件都会被删除。
/P删除每一个文件之前提示确认。
/F强制删除只读文件。
/S从所有子目录删除指定文件。
/Q安静模式。
删除全局通配符时,不要求确认。
/A根据属性选择要删除的文件。
attributesR只读文件S系统文件H隐藏文件A存档文件-表示―否‖的前缀如果命令扩展名被启用,DEL和ERASE会如下改变:
/S开关的显示句法会颠倒,即只显示已经删除的文件,而不显示找不到的文件。
2、COLOR设置默认的控制台前景和背景颜色。
COLOR[attr]attr指定控制台输出的颜色属性颜色属性由两个十六进制数字指定--第一个为背景,第二个则为前景。
每个数字可以为以下任何值之一:
0=黑色8=灰色1=蓝色9=淡蓝色2=绿色A=淡绿色3=湖蓝色B=淡浅绿色4=红色C=淡红色5=紫色D=淡紫色6=黄色E=淡黄色7=白色F=亮白色如果没有给定任何参数,该命令会将颜色还原到CMD.EXE启动时的颜色。
这个值来自当前控制台窗口、/T开关或DefaultColor注册表值。
如果用相同的前景和背景颜色来执行COLOR命令,COLOR命令会将ERRORLEVEL设置为1。
例如:
"COLORfc"在亮白色上产生亮红色2005-11-1211:
03回复SSWNL7位粉丝3楼3、CD或CHDIR显示当前目录名或改变当前目录。
CHDIR[/D][drive:
][path]CHDIR[..]CD[/D][drive:
][path]CD[..]..指定要改成父目录。
键入CD驱动器:
显示指定驱动器中的当前目录。
不带参数只键入CD,则显示当前驱动器和目录。
使用/D命令行开关,除了改变驱动器的当前目录之外,还可改变当前驱动器。
如
果扩展命令名被启用,CHDIR会如下改变:
当前的目录字符串会被转换成使用磁盘名上的大小写。
所以,如果磁盘上的大小写如此,CDC:
TEMP会将当前目录设为C:
Temp。
CHDIR命令不把空格当作分隔符,因此有可能将目录名改为一个带有空格但不带有引号的子目录名。
例如:
cdWinntprofilesusernameprogramsstartmenu与下列相同:
cd"Winntprofilesusernameprogramsstartmenu"在扩展功能停用的情况下,您必须键入以上命令。
4、MD或MKDIR创建目录。
MKDIR[drive:
]pathMD[drive:
]path如果命令扩展名被启用,MKDIR会如下改变:
如果需要,MKDIR会在路径中创建中级目录。
例如:
假设a不存在,那么:
mkdirabcd与:
mkdirachdiramkdirbchdirbmkdircchdircmkdird相同。
如果扩展名被停用,则需要键入mkdirabcd。
5、PROMPT更改cmd.exe命令提示符。
PROMPT[text]text指定新的命令提示符。
提示符可以由普通字符及下列特定代码组成:
?
$A&(短and符号)?
$B|(管道)?
$C((左括弧)?
$D当前日期?
$EEscapecode(ASCII码27)?
$F)(右括弧)?
$G>(大于符号)?
$HBackspace(擦除前一个字符)?
$L<(小于符号)?
$N当前驱动器?
$P当前驱动器及路径?
$Q=(等号)?
$S(空格)?
$T当前时间?
$VWindowsXP版本号?
$_换行?
$?
$?
$(货币符号)如果命令扩展名被启用,PROMPT命令会支持下列格式化字符:
?
$+根据PUSHD目录堆栈的深度,零个或零个以上加号(+)字符;每个被推的层有一个字符。
?
$M如果当前驱动器不是网络驱动器,显示跟当前驱动器号或空字符串有关联的远程名。
6、PUSHD保存当前目录以供POPD命令使用,然后改到指定的目录。
PUSHD[path|..]path指定要成为当前目录的目录。
如果命令扩展名被启用,除了一般驱动器号和路径,PUSHD命令还接受网络路径。
如果指定了网络路径,PUSHD将创建一个指向指定网络资源的临时驱动器号,然后再用刚定义的驱动器号改变当前的驱动器和目录。
可以从Z:
往下分配临时驱动器号,使用找到的第一个没有用过的驱动器号。
7、POPD命令选项到保存在PUSHD命令里的目录。
POPD如果命令扩展名被启用,从推目录堆栈POPD驱动器时,POPD命令会删除PUSHD创建的临时驱动器号。
8、SET显示、设置或删除cmd.exe环境变量。
SET[variable=[string]]variable指定环境变量名。
string指定要指派给变量的一系列字符串。
要显示当前环境变量,键入不带参数的SET。
如果命令扩展名被启用,SET会如下改变:
可仅用一个变量激活SET命令,等号或值不显示所有前缀匹配SET命令已使用的名称的所有变量的值。
例如:
SETP会显示所有以字母P打头的变量如果在当前环境中找不到该变量名称,SET命令将把ERRORLEVEL2005-11-1211:
03回复SSWNL7位粉丝4楼设置成1。
SET命令不允许变量名含有等号。
在SET命令中添加了两个新命令行开关:
SET/AeXPressionSET/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命令行开关而被启用/停用。
考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境变量扩充是很有用的,而不是执行的时候。
以下例子说明直接变量扩充的问题:
setVAR=beforeif"%VAR%"=="before"(setVAR=afterif"%VAR%"=="after"@echoIfyouseethis,
itworked)不会显示消息,因为在读到第一个IF语句时,BOTHIF语句中的%VAR%会被代替;原因是:
它包含IF的文体,IF是一个复合语句。
所以,复合语句中的IF实际上是在比较"before"和"after",这两者永远不会相等。
同样,以下这个例子也不会达到预期效果:
setLIST=for%iin(*)dosetLIST=%LIST%%iecho%LIST%原因是它不会在目前的目录中建立一个文件列表,而只是将LIST变量设成找到的最后一个文件。
这也是因为%LIST%在FOR语句被读取时,只被扩充了一次;而且,那时的LIST变量是空的。
因此,我们真正执行的FOR循环是:
for%iin(*)dosetLIST=%i这个循环继续将LIST设成找到的最后一个文件。
2005-11-1211:
03回复SSWNL7位粉丝5楼延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行时间扩充环境变量。
如果延迟的变量扩充被启用,可以将上面例子写成以下所示,以达到预期效果:
setVAR=beforeif"%VAR%"=="before"(setVAR=afterif"!
VAR!
"=="after"@echoIfyouseethis,itworked)setLIST=for%iin(*)dosetLIST=!
LIST!
%iecho%LIST%如果命令扩展名被启用,有几个动态环境变量可以被扩展,但不会出现在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>nulSETLOCALENABLEEXTENSIONSIFERRORLEVEL1echoUnabletoenableextensions这个方法之所以有效,是因为在CMD.EXE的旧版本上,SETLOCAL不设置ERRORLEVEL值。
具有不正确参数的VERIFY命令将ERRORLEVEL值初始化成非零值。
10、ENDLOCAL结束批处理文件中环境改动的本地化操作。
在执行ENDLOCAL之后所做的环境改动不再仅限于批处理文件。
批处理文件结束后,原先的设置无法还原。
ENDLOCAL如果命令扩展名被启用,ENDLOCAL会如下改变:
如果相应的SETLOCAL用新的ENABLEEXTENSIONS或DISABLEEXTENSIONS选项启用或停用了命令扩展名,那么,在ENDLOCAL之后,命令扩展名的启用/停用状态会还原到执行相应的SETLOCAL命令前的状态。
11、IF执行批处理程序中的条件处理。
IF[NOT]ERRORLEVELnumbercommandIF[NOT]string1==string2commandIF[NOT]EXISTfilenamecommandNOT指定只有条件为false的情况下,WindowsXP才应该执行该命令。
ERRORLEVELnumber如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为true。
string1==string2如果指定的文字字符串匹配,指定条件为true。
EXISTfilename如果指定的文件名存在,指定条件为true。
command如果符合条件,指定要执行的命令。
如果指定的条件为FALSE,命令后可跟一个执行ELSE2005-11-1211:
03回复SSWNL7位粉丝6楼关键字后的命令的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-opstring2commandIFCMDEXTVERSIONnumbercommandIFDEFINEDvariablecommand其中,比较运算符可以是:
EQU-等于NEQ-不等于LSS-小于LEQ-小于或等于GTR-大于GEQ-大于或等于及/I开关;如果该开关被指定,则说明要进行的字符串比较不分大小写。
/I开关可以用于IF的string1==string2的形式上。
这些比较都是通用的;原因是,如果string1和string2都是由数字组成的,字符串会被转换成数字,进行数字比较。
CMDEXTVERSION条件的作用跟ERRORLEVEL的一样,除了它是在跟与命令扩展名有关联的内部版本号比较。
第一个版本是1。
每次对命令扩展名有相当大的增强时,版本号会增加一个。
命令扩展名被停用时,CMDEXTVERSION条件不是真的。
如果已定义环境变量,DEFINED条件的作用跟EXISTS的一样,除了它取得一个环
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 命令 提示符 操作 功能