命令行解释器是一个单独的软件程序,它可以在用户和操作系统之间提供直接的通讯。非图形命令行解释器用户界面提供运行基于字符的应用程序和实用程序的环境。通过使用类似于
可以使用命令行解释器创建和编辑可自动执行常规任务的批处理文件(也称作脚本)。例如,可以使用脚本自动管理用户帐户或夜间备份。还可以使用 Windows 脚本宿主 CScript 的命令行版本在命令行解释器中运行更高级的脚本。详细信息,请参阅href="MS-ITS:wscript.chm::/wsh_runfromcommandprompt.htm">运行 Windows 脚本宿主。通过使用批处理文件来执行操作,可比使用用户界面更有效率。批处理文件接受命令行上可用的所有命令。有关批处理文件和脚本的详细信息,请参阅id=specLoc href="MS-ITS:ntcmds.chm::/batch.htm">使用批处理文件。
您可以自定义命令提示符窗口以易于查看并增强对程序运行方式的控制。有关自定义命令提示符窗口的详细信息,请参阅href="MS-ITS:ntcmds.chm::/CommandPromptOptions.htm">配置命令提示符。
语法按命令及所带参数必须遵循的键入顺序出现。下面的 xcopy 命令示例显示了各种语法文本格式:
下表说明如何解释不同的文本格式。
格式 | 含义 |
---|---|
斜体 | 用户必须提供的信息 |
粗体 | 用户必须准确键入的要显示的元素 |
省略号 (...) | 在命令行中可多次重复的参数 |
中括号 ([]) | 可选项 |
大括号 ({});选项用竖线 (|) 分隔。例如:{even|odd} | 用户必须从选项集合中选择一个 |
Courier 字体 | 代码或程序输出 |
使用条件处理符号可以在单个命令行或脚本中运行多个命令。通过条件处理符号运行多个命令时,条件处理符号右边的命令根据条件处理符号左边命令的执行结果来发挥作用。例如,只有在前一个命令失败的情况下才可能需要运行一个新命令。或者,只有在前一个命令成功时才可能需要运行一个新命令。
可以使用下表列出的特殊字符来传递多个命令。
字符 | 语法 | 定义 |
---|---|---|
& [...] | Command1?& Command2 | 用来分隔一个命令行中的多个命令。Cmd.exe 运行第一个命令,然后运行第二个命令。 |
&& [...] | Command1?&& Command2 | 只有在符号 && 前面的命令成功时,才运行该符号后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令运行成功时才运行第二个命令。 |
|| [...] | Command1?||?Command2 | 只有在符号 || 前面的命令失败时,才运行符号 || 后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令未能运行成功(接收到大于零的错误代码)时才运行第二个命令。 |
( ) [...] | (Command1?&?Command2) | 用来分组或嵌套多个命令。 |
; 或者 , | Command1?Parameter1;Parameter2 | 用来分隔命令参数。 |
src="ms-its:c:\windows\help\UAshared.chm::/note.gif"> 注意
通过在命令提示符下打开新的 Cmd.exe 实例,可以在 Cmd.exe 内嵌套命令行解释器。默认情况下,Cmd.exe 的每个实例继承其父 Cmd.exe 应用程序的环境。通过嵌套 Cmd.exe 的实例,可以更改局部环境,而不会影响 Cmd.exe 的父应用程序。这使您能够保留 Cmd.exe 的原始环境,并在终止嵌套的命令行解释器之后返回到原始环境。但是在嵌套的命令行解释器中所做的更改将不会被保存。
要嵌套命令行解释器,请在命令提示符下键入:
cmd
出现类似于下面内容的消息:
Microsoft (R) Windows Server?2003 Standard Edition (TM)
(C) 版权所有 1985-2002 Microsoft Corp.
要关闭嵌套的命令行解释器,请键入 exit。
使用 setlocal 和 endlocal 命令,可以在 Cmd.exe 的实例中(或在脚本中)进一步将更改局部化。Setlocal 创建局部作用范围,而 endlocal 终止局部作用范围。在 setlocal 和 endlocal 作用范围内所做的更改将会被放弃,从而保持原始环境不变。这两个命令的嵌套最高可达到 32 级。有关 setlocal 和 endlocal 命令的详细信息,请参阅 href="MS-ITS:ntcmds.chm::/setlocal.htm">Setlocal 和 href="MS-ITS:ntcmds.chm::/endlocal.htm">Endlocal。
Cmd.exe 命令行解释器环境由确定命令行解释器和操作系统行为的变量进行定义。可以使用两种类型的环境变量(系统和局部)来定义命令行解释器环境或整个操作系统环境的行为。系统环境变量定义全局操作系统环境的行为。局部环境变量定义 Cmd.exe 当前实例环境的行为。
系统环境变量预置于操作系统之中,并可用于所有
局部环境变量只有在创建变量时针对的目标用户登录到计算机时才有效。HKEY_CURRENT_USER title=查看定义
href="HELP=glossary.hlp TOPIC=gls_registry_hive">配置单元中设置的局部变量只对当前用户有效,但它们可定义全局操作系统环境的行为。
下表按优先顺序的降序描述变量的各种类型:
在命令行解释器中,Cmd.exe 的每个实例都继承其父应用程序的环境。因此,可以在不影响父应用程序环境的情况下更改新的 Cmd.exe 环境中的变量。
下表列出
变量 | 类型 | 描述 |
---|---|---|
本地 | 返回“所有用户”配置文件的位置。 | |
本地 | 返回默认情况下应用程序存储数据的位置。 | |
本地 | 返回当前目录字符串。 | |
本地 | 返回用来启动当前的 Cmd.exe 的准确命令行。 | |
系统 | 返回当前的“命令处理程序扩展”的版本号。 | |
系统 | 返回计算机的名称。 | |
系统 | 返回命令行解释器可执行程序的准确路径。 | |
系统 | 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 id=specLoc href="MS-ITS:ntcmds.chm::/date.htm">Date。 | |
系统 | 返回上一条命令的错误代码。通常用非零值表示错误。 | |
系统 | 返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 | |
系统 | 返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 | |
系统 | 返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。 | |
本地 | 返回验证当前登录会话的域控制器的名称。 | |
系统 | 指定安装在计算机上的处理器的数目。 | |
系统 | 返回操作系统名称。 | |
系统 | 指定可执行文件的搜索路径。 | |
系统 | 返回操作系统认为可执行的文件扩展名的列表。 | |
系统 | 返回处理器的芯片体系结构。值:href="HELP=glossary.hlp TOPIC=x86">x86 或 IA64(基于 href="HELP=glossary.hlp TOPIC=itanium">Itanium)。 | |
系统 | 返回处理器说明。 | |
系统 | 返回计算机上安装的处理器的型号。 | |
系统 | 返回处理器的版本号。 | |
本地 | 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。 | |
系统 | 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。 | |
系统 | 返回包含 | |
系统 | 返回 | |
系统和用户 | 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。 | |
系统 | 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 id=specLoc href="MS-ITS:ntcmds.chm::/time.htm">Time。 | |
本地 | 返回包含用户帐户的域的名称。 | |
本地 | 返回当前登录的用户的名称。 | |
本地 | 返回当前用户的配置文件的位置。 | |
系统 | 返回操作系统目录的位置。 |
使用 set 命令创建、更改、删除或显示环境变量。set 命令只更改当前解释器环境中的变量。
要查看变量,请在命令提示符下键入:
set VariableName
要添加变量,请在命令提示符下键入:
set variablename=Value
要删除变量,请在命令提示符下键入:
set VariableName=
可以将大多数字符用作变量值,其中包括空格。如果使用特殊字符 <、>、|、& 或 ^,则必须在它们前面加上转义字符 (^) 或引号。如果使用引号,则必须将引号作为值的组成部分,因为等号后面的任何内容都会被视为值。请考虑下列示例:
set varname=new^&name
set varname="new&name"
“'name' 不是内部或外部文件,也不是可运行的程序或批处理文件。”
变量名不区分大小写。但是,set 显示的变量与您键入的完全相同。可以在变量名中结合使用大写字母和小写字母,这样可以使代码更具有可读性(例如,UserName)。
src="ms-its:c:\windows\help\UAshared.chm::/note.gif"> 注意
要在命令行或脚本中启用变量值替换,请将变量名包括在百分号之中(即,