cmd命令用法

来源:互联网 发布:站群软件易语言源码 编辑:程序博客网 时间:2024/04/27 22:56

cmd.exe


    cmd是windows2000中的一个小得如鸽子蛋一样的程序,是一个所谓命令行控制台。

    进入方式:第一,“运行”中输入cmd

              第二,在启动windows2000的时候,按F8进入启动选择菜单,安全模式的命令行状态。

    出现的窗口是一个在win9x系统常见的那种msdos方式的界面――一个黑乎乎的窗口.甚至还没有msdos方式的窗口耐看:连常用的工具条都没有放上.我真想不通,贵为最新的操作系统,因何还保留似乎是石器时代的dos界面呢?

 

CMD:1.这些信息是中文的,要知道原来纯dos环境可不会直接支持中文呀!

     2.有相当详细的帮助信息.

     3.界面虽然是命令行的,但却可以对很多深层次的项目进行操作,,例如修改注册表等等.后来的使用也证明,cmd实际上也能直接调用图形界面的程序,并在调用结束后可以返回到命令行界面.

    尽管微软把这个工具当做命令解释器一个新的实例,但使用的方法却和原来的DOS没有区别,与DOS相同的系统提示符号C:/>,命令必须键入在这个提示符的后面,以回车键确认.

  完整的语法如下:

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 将 c 作为定界符启动延缓环境变量扩展。如: /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_MACHINESoftwareMicrosoftCommand ProcessorAutoRun

和/或HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorAutoRun

命令扩展是按默认值启用的。您也可以使用 /E:OFF,为某一特定调用而停用扩展。您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的扩展,这要通过设置使用REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值:

HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorEnableExtensions

和/或HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorEnableExtensions

到 0x1 或 0x0。 用户特定设置比机器设置有优先权。命令行命令选项比注册表设置有优先权。

原来的dos中有所谓的内部命令和外部命令,在cmd中,引入了命令行扩展,你可以在cmd窗口中直接执行下面的扩展部分,扩展部分之前不必加cmd.

命令行扩展包括对下列命令所做的更改和/或添加:

DEL 或 ERASE

COLOR

CD 或 CHDIR

MD 或 MKDIR

PROMPT

PUSHD

POPD

SET

SETLOCAL

ENDLOCAL

IF

FOR

CALL

SHIFT

GOTO

START (同时包括对外部命令调用所做的更改)

ASSOC

FTYPE

 

有关详细信息,请键入 HELP 命令名。

 

 

 延迟变量环境扩展不按默认值启用。您可以用/V:ON或 /V:OFF

命令选项,为 CMD.EXE 的某个调用而启用或停用延迟环境变量扩充。

您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有

调用的完成,这要通过设置使用 REGEDT32.EXE 的注册表中的

一个或两个 REG_DWORD 值:

HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorDelayedExpansion

和/或

HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorDelayedExpansion

到 0x1 或 0x0。 用户特定设置比机器设置有优先权。命令行命令选项

比注册表设置有优先权。

如果延迟环境变量扩充被启用,惊叹号字符可在执行时间,被用来

代替一个环境变量的数值。

文件和目录名完成不按默认值启用。您可以用 /F:ON 或 /F:OFF

命令选项,为 CMD.EXE 的某个调用而启用或停用文件名完成。 您可以

在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的

完成,这要通过设置使用 REGEDT32.EXE 的注册表中的一个或两个

REG_DWORD 值:

HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorCompletionChar

HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorPathCompletionChar

和/或

HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorCompletionChar

HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorPathCompletionChar

由一个控制字符的十六进制值作为一个特定参数(例如,0x4 是Ctrl-D,0x6 是 Ctrl-F)。 用户特定设置优先于机器设置。命令行命令选项优先于注册表设置。

如果完成是用 /F:ON 命令选项启用的,两个要使用的控制符是: 目录名字完成用 Ctrl-D, 文件名完成用 Ctrl-F。 要停用注册表中的某个字符,请用空格 (0x20) 的数值,因为此字符不是控制字符。如果键入两个控制字符中的一个,完成会被调用。完成功能将路径字符长带到光标的左边,如果没有通配符,将通配符附加到左边,并建立相符的路径列表。然后,显示第一个相符的路径。如果没有相符的路径,则发出嘟嘟声,不影响显示。之后,重复按同一个控制字符会循环显示相符路径的列表。将 Shift 键跟控制字符同时按下,会倒着显示列表。如果对该行进行了任何编辑,并再次按下控制字符,保存的相符路径的列表会被丢弃,新的会被生成。如果在文件和目录名完成之间命令选项,会发生同样现象。两个控制字符之间的唯一区别是文件完成字符符合文件和目录名,而目录完成字符只符合目录名。如果文件完成被用于内置式目录命令(CD, MD 或 RD),就会使用目录完成。将引号将相符路径括起来,完成代码可以正确处理含有空格或其它特殊字符的文件名。同时,如果备份,然后从行内调用文件完成,完成被调用是位于光标右方的文字会被丢弃。

上述的命令行扩展部分,有些和dos是相同的,此处就不多说了.下面主要介绍dos中没有的部分或是变动较大的部分:  

 

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。

例如: "COLOR fc" 在亮白色上产生亮红色

 

PUSHD [path | ..] :

保存当前目录以供 POPD 命令使用,然后改到指定的目录。

path 指定要成为当前目录的目录。

 

如果命令扩展名被启用,除了一般驱动器号和路径,PUSHD命令还接受网络路径。如果指定了网络路径,PUSHD 将创建一个指向指定网络资源的临时驱动器号,然后再用刚定义的驱动器号改变当前的驱动器和目录。可以从 Z: 往下分配临时驱动器号,使用找到的第一个没有用过的驱动器号。

 

POPD:

命令选项到保存在 PUSHD 命令里的目录。如果命令扩展名被启用,从推目录堆栈 POPD 驱动器时,POPD命令会删除 PUSHD 创建的临时驱动器号。

 

SETLOCAL:

开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行 ENDLOCAL。 达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。如果命令扩展名被启用,SETLOCAL 会如下改变:

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

ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION

启动或停用延缓环境变量/扩展名。详细信息,请参阅 SET /? 。

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

保留到匹配的 ENDLOCAL 命令。

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

如果有两个有效参数中的一个,该值则为零。用下列技巧,您

可以在批脚本中使用这个来决定扩展名是否可用:

VERIFY OTHER 2>nul

SETLOCAL ENABLEEXTENSIONS

IF ERRORLEVEL 1 echo Unable to enable extensions

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

不设置 ERRORLEVEL 值。具有不正确参数的 VERIFY 命令将

ERRORLEVEL 值初始化成非零值。

 

ENDLOCAL :

结束批处理文件中环境改动的本地化操作。在执行ENDLOCAL 之后所做的环境改动不再仅限于批处理文件。批处理文件结束后,原先的设置无法还原。如果命令扩展名被启用,ENDLOCAL 会如下改变:

 

如果相应的 SETLOCAL 用新的 ENABLEEXTENSIONS 或

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

 

ASSOC [.ext[=[fileType]]]:

显示或修改文件扩展名关联

.ext 指定跟文件类型关联的文件扩展名

fileType 指定跟文件扩展名关联的文件类型

键入 ASSOC 而不带参数,显示当前文件关联。如果只用文件扩展名调用 ASSOC,则显示那个文件扩展名的当前文件关联。如果不为文件类型指定任何参数,命令会删除文件扩展名的关联。

 

FTYPE [fileType[=[openCommandString]]]:

显示或修改用在文件扩展名关联中的文件类型

fileType 指定要检查或改变的文件类型

openCommandString 指定调用这类文件时要使用的开放式命令。键入 FTYPE 而不带参数来显示当前有定义的开放式命令字符串的文件类型。 FTYPE 仅用一个文件类型启用时,它显示那个文件类型目前的开放式命令字符串。如果不为开放式命令字符串指定,FTYPE 命令将删除那个文件类型的开放式命令字符串。在一个开放式命令字符串之内,命令字符串 %0 或 %1 被通过关联调用的文件名所代替。%* 得到所有的参数,%2 得到第一个参数,%3 得到第二个,等等。%~n 得到其余所有以 nth 参数打头的参数;n 可以是从 2 到 9 的数字。例如:

ASSOC .pl=PerlScript

FTYPE PerlScript=perl.exe %1 %* 允许您启用以下 Perl 脚本:

script.pl 1 2 3

如果不想键入扩展名,则键入以下字符串:

set PATHEXT=.pl;%PATHEXT%

被启动的脚本如下:

script 1 2 3

 由于这个新的命令行解释器和原来的dos下的command有继承关系,所以,原有的dos命令仍然有效.例如格式化命令format ,尽管里面没有明说,但直接就可以使用.如果想退出命令行窗口,可以使用exit命令.  

原创粉丝点击