命令行解釋器是一個(gè)單獨(dú)的軟件程序,它可以在用戶(hù)和操作系統(tǒng)之間提供直接的通訊。非圖形命令行解釋器用戶(hù)界面提供運(yùn)行基于字符的應(yīng)用程序和實(shí)用程序的環(huán)境。通過(guò)使用類(lèi)似于
可以使用命令行解釋器創(chuàng)建和編輯可自動(dòng)執(zhí)行常規(guī)任務(wù)的批處理文件(也稱(chēng)作腳本)。例如,可以使用腳本自動(dòng)管理用戶(hù)帳戶(hù)或夜間備份。還可以使用 Windows 腳本宿主 CScript 的命令行版本在命令行解釋器中運(yùn)行更高級(jí)的腳本。詳細(xì)信息,請(qǐng)參閱href="MS-ITS:wscript.chm::/wsh_runfromcommandprompt.htm">運(yùn)行 Windows 腳本宿主。通過(guò)使用批處理文件來(lái)執(zhí)行操作,可比使用用戶(hù)界面更有效率。批處理文件接受命令行上可用的所有命令。有關(guān)批處理文件和腳本的詳細(xì)信息,請(qǐng)參閱id=specLoc href="MS-ITS:ntcmds.chm::/batch.htm">使用批處理文件。
您可以自定義命令提示符窗口以易于查看并增強(qiáng)對(duì)程序運(yùn)行方式的控制。有關(guān)自定義命令提示符窗口的詳細(xì)信息,請(qǐng)參閱href="MS-ITS:ntcmds.chm::/CommandPromptOptions.htm">配置命令提示符。
語(yǔ)法按命令及所帶參數(shù)必須遵循的鍵入順序出現(xiàn)。下面的 xcopy 命令示例顯示了各種語(yǔ)法文本格式:
下表說(shuō)明如何解釋不同的文本格式。
格式 | 含義 |
---|---|
斜體 | 用戶(hù)必須提供的信息 |
粗體 | 用戶(hù)必須準(zhǔn)確鍵入的要顯示的元素 |
省略號(hào) (...) | 在命令行中可多次重復(fù)的參數(shù) |
中括號(hào) ([]) | 可選項(xiàng) |
大括號(hào) ({});選項(xiàng)用豎線(xiàn) (|) 分隔。例如:{even|odd} | 用戶(hù)必須從選項(xiàng)集合中選擇一個(gè) |
Courier 字體 | 代碼或程序輸出 |
使用條件處理符號(hào)可以在單個(gè)命令行或腳本中運(yùn)行多個(gè)命令。通過(guò)條件處理符號(hào)運(yùn)行多個(gè)命令時(shí),條件處理符號(hào)右邊的命令根據(jù)條件處理符號(hào)左邊命令的執(zhí)行結(jié)果來(lái)發(fā)揮作用。例如,只有在前一個(gè)命令失敗的情況下才可能需要運(yùn)行一個(gè)新命令?;蛘撸挥性谇耙粋€(gè)命令成功時(shí)才可能需要運(yùn)行一個(gè)新命令。
可以使用下表列出的特殊字符來(lái)傳遞多個(gè)命令。
字符 | 語(yǔ)法 | 定義 |
---|---|---|
& [...] | Command1?& Command2 | 用來(lái)分隔一個(gè)命令行中的多個(gè)命令。Cmd.exe 運(yùn)行第一個(gè)命令,然后運(yùn)行第二個(gè)命令。 |
&& [...] | Command1?&& Command2 | 只有在符號(hào) && 前面的命令成功時(shí),才運(yùn)行該符號(hào)后面的命令。Cmd.exe 運(yùn)行第一個(gè)命令,然后只有在第一個(gè)命令運(yùn)行成功時(shí)才運(yùn)行第二個(gè)命令。 |
|| [...] | Command1?||?Command2 | 只有在符號(hào) || 前面的命令失敗時(shí),才運(yùn)行符號(hào) || 后面的命令。Cmd.exe 運(yùn)行第一個(gè)命令,然后只有在第一個(gè)命令未能運(yùn)行成功(接收到大于零的錯(cuò)誤代碼)時(shí)才運(yùn)行第二個(gè)命令。 |
( ) [...] | (Command1?&?Command2) | 用來(lái)分組或嵌套多個(gè)命令。 |
; 或者 , | Command1?Parameter1;Parameter2 | 用來(lái)分隔命令參數(shù)。 |
src="ms-its:c:\windows\help\UAshared.chm::/note.gif"> 注意
通過(guò)在命令提示符下打開(kāi)新的 Cmd.exe 實(shí)例,可以在 Cmd.exe 內(nèi)嵌套命令行解釋器。默認(rèn)情況下,Cmd.exe 的每個(gè)實(shí)例繼承其父 Cmd.exe 應(yīng)用程序的環(huán)境。通過(guò)嵌套 Cmd.exe 的實(shí)例,可以更改局部環(huán)境,而不會(huì)影響 Cmd.exe 的父應(yīng)用程序。這使您能夠保留 Cmd.exe 的原始環(huán)境,并在終止嵌套的命令行解釋器之后返回到原始環(huán)境。但是在嵌套的命令行解釋器中所做的更改將不會(huì)被保存。
要嵌套命令行解釋器,請(qǐng)?jiān)诿钐崾痉骆I入:
cmd
出現(xiàn)類(lèi)似于下面內(nèi)容的消息:
Microsoft (R) Windows Server?2003 Standard Edition (TM)
(C) 版權(quán)所有 1985-2002 Microsoft Corp.
要關(guān)閉嵌套的命令行解釋器,請(qǐng)鍵入 exit。
使用 setlocal 和 endlocal 命令,可以在 Cmd.exe 的實(shí)例中(或在腳本中)進(jìn)一步將更改局部化。Setlocal 創(chuàng)建局部作用范圍,而 endlocal 終止局部作用范圍。在 setlocal 和 endlocal 作用范圍內(nèi)所做的更改將會(huì)被放棄,從而保持原始環(huán)境不變。這兩個(gè)命令的嵌套最高可達(dá)到 32 級(jí)。有關(guān) setlocal 和 endlocal 命令的詳細(xì)信息,請(qǐng)參閱 href="MS-ITS:ntcmds.chm::/setlocal.htm">Setlocal 和 href="MS-ITS:ntcmds.chm::/endlocal.htm">Endlocal。
Cmd.exe 命令行解釋器環(huán)境由確定命令行解釋器和操作系統(tǒng)行為的變量進(jìn)行定義??梢允褂脙煞N類(lèi)型的環(huán)境變量(系統(tǒng)和局部)來(lái)定義命令行解釋器環(huán)境或整個(gè)操作系統(tǒng)環(huán)境的行為。系統(tǒng)環(huán)境變量定義全局操作系統(tǒng)環(huán)境的行為。局部環(huán)境變量定義 Cmd.exe 當(dāng)前實(shí)例環(huán)境的行為。
系統(tǒng)環(huán)境變量預(yù)置于操作系統(tǒng)之中,并可用于所有
局部環(huán)境變量只有在創(chuàng)建變量時(shí)針對(duì)的目標(biāo)用戶(hù)登錄到計(jì)算機(jī)時(shí)才有效。HKEY_CURRENT_USER title=查看定義
href="HELP=glossary.hlp TOPIC=gls_registry_hive">配置單元中設(shè)置的局部變量只對(duì)當(dāng)前用戶(hù)有效,但它們可定義全局操作系統(tǒng)環(huán)境的行為。
下表按優(yōu)先順序的降序描述變量的各種類(lèi)型:
在命令行解釋器中,Cmd.exe 的每個(gè)實(shí)例都繼承其父應(yīng)用程序的環(huán)境。因此,可以在不影響父應(yīng)用程序環(huán)境的情況下更改新的 Cmd.exe 環(huán)境中的變量。
下表列出
變量 | 類(lèi)型 | 描述 |
---|---|---|
本地 | 返回“所有用戶(hù)”配置文件的位置。 | |
本地 | 返回默認(rèn)情況下應(yīng)用程序存儲(chǔ)數(shù)據(jù)的位置。 | |
本地 | 返回當(dāng)前目錄字符串。 | |
本地 | 返回用來(lái)啟動(dòng)當(dāng)前的 Cmd.exe 的準(zhǔn)確命令行。 | |
系統(tǒng) | 返回當(dāng)前的“命令處理程序擴(kuò)展”的版本號(hào)。 | |
系統(tǒng) | 返回計(jì)算機(jī)的名稱(chēng)。 | |
系統(tǒng) | 返回命令行解釋器可執(zhí)行程序的準(zhǔn)確路徑。 | |
系統(tǒng) | 返回當(dāng)前日期。使用與 date /t 命令相同的格式。由 Cmd.exe 生成。有關(guān) date 命令的詳細(xì)信息,請(qǐng)參閱 id=specLoc href="MS-ITS:ntcmds.chm::/date.htm">Date。 | |
系統(tǒng) | 返回上一條命令的錯(cuò)誤代碼。通常用非零值表示錯(cuò)誤。 | |
系統(tǒng) | 返回連接到用戶(hù)主目錄的本地工作站驅(qū)動(dòng)器號(hào)?;谥髂夸浿刀O(shè)置。用戶(hù)主目錄是在“本地用戶(hù)和組”中指定的。 | |
系統(tǒng) | 返回用戶(hù)主目錄的完整路徑?;谥髂夸浿刀O(shè)置。用戶(hù)主目錄是在“本地用戶(hù)和組”中指定的。 | |
系統(tǒng) | 返回用戶(hù)的共享主目錄的網(wǎng)絡(luò)路徑。基于主目錄值而設(shè)置。用戶(hù)主目錄是在“本地用戶(hù)和組”中指定的。 | |
本地 | 返回驗(yàn)證當(dāng)前登錄會(huì)話(huà)的域控制器的名稱(chēng)。 | |
系統(tǒng) | 指定安裝在計(jì)算機(jī)上的處理器的數(shù)目。 | |
系統(tǒng) | 返回操作系統(tǒng)名稱(chēng)。 | |
系統(tǒng) | 指定可執(zhí)行文件的搜索路徑。 | |
系統(tǒng) | 返回操作系統(tǒng)認(rèn)為可執(zhí)行的文件擴(kuò)展名的列表。 | |
系統(tǒng) | 返回處理器的芯片體系結(jié)構(gòu)。值:href="HELP=glossary.hlp TOPIC=x86">x86 或 IA64(基于 href="HELP=glossary.hlp TOPIC=itanium">Itanium)。 | |
系統(tǒng) | 返回處理器說(shuō)明。 | |
系統(tǒng) | 返回計(jì)算機(jī)上安裝的處理器的型號(hào)。 | |
系統(tǒng) | 返回處理器的版本號(hào)。 | |
本地 | 返回當(dāng)前解釋程序的命令提示符設(shè)置。由 Cmd.exe 生成。 | |
系統(tǒng) | 返回 0 到 32767 之間的任意十進(jìn)制數(shù)字。由 Cmd.exe 生成。 | |
系統(tǒng) | 返回包含 | |
系統(tǒng) | 返回 | |
系統(tǒng)和用戶(hù) | 返回對(duì)當(dāng)前登錄用戶(hù)可用的應(yīng)用程序所使用的默認(rèn)臨時(shí)目錄。有些應(yīng)用程序需要 TEMP,而其他應(yīng)用程序則需要 TMP。 | |
系統(tǒng) | 返回當(dāng)前時(shí)間。使用與 time /t 命令相同的格式。由 Cmd.exe 生成。有關(guān) time 命令的詳細(xì)信息,請(qǐng)參閱 id=specLoc href="MS-ITS:ntcmds.chm::/time.htm">Time。 | |
本地 | 返回包含用戶(hù)帳戶(hù)的域的名稱(chēng)。 | |
本地 | 返回當(dāng)前登錄的用戶(hù)的名稱(chēng)。 | |
本地 | 返回當(dāng)前用戶(hù)的配置文件的位置。 | |
系統(tǒng) | 返回操作系統(tǒng)目錄的位置。 |
使用 set 命令創(chuàng)建、更改、刪除或顯示環(huán)境變量。set 命令只更改當(dāng)前解釋器環(huán)境中的變量。
要查看變量,請(qǐng)?jiān)诿钐崾痉骆I入:
set VariableName
要添加變量,請(qǐng)?jiān)诿钐崾痉骆I入:
set variablename=Value
要?jiǎng)h除變量,請(qǐng)?jiān)诿钐崾痉骆I入:
set VariableName=
可以將大多數(shù)字符用作變量值,其中包括空格。如果使用特殊字符 <、>、|、& 或 ^,則必須在它們前面加上轉(zhuǎn)義字符 (^) 或引號(hào)。如果使用引號(hào),則必須將引號(hào)作為值的組成部分,因?yàn)榈忍?hào)后面的任何內(nèi)容都會(huì)被視為值。請(qǐng)考慮下列示例:
set varname=new^&name
set varname="new&name"
“'name' 不是內(nèi)部或外部文件,也不是可運(yùn)行的程序或批處理文件?!?/CODE>
變量名不區(qū)分大小寫(xiě)。但是,set 顯示的變量與您鍵入的完全相同??梢栽谧兞棵薪Y(jié)合使用大寫(xiě)字母和小寫(xiě)字母,這樣可以使代碼更具有可讀性(例如,UserName)。
src="ms-its:c:\windows\help\UAshared.chm::/note.gif"> 注意
要在命令行或腳本中啟用變量值替換,請(qǐng)將變量名包括在百分號(hào)之中(即,