熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

cmd.exe更加復雜強大的命令行參數

2022-06-13   來源: Windows系統管理 

  Cmdexe有很多命令行參數具體情況如下
  CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [
  [/S] [/C | /K] string]
  /C 執行字符串指定的命令然後中斷;
  /K 執行字符串指定的命令但保留;
  /S 在 /C 或 /K 後修改字符串處理;
  /Q 關閉回應;
  /D 從注冊表中停用執行AutoRun命令;
  /A 使向內部管道或文件命令的輸出成為ANSI;
  /U 使向內部管道或文件命令的輸出成為Unicode
  /T:fg 設置前景/背景顏色
  /E:ON 啟用命令擴展;
  /E:OFF 停用命令擴展;
  /F:ON 啟用文件和目錄名稱完成字符;
  /F:OFF 停用文件和目錄名稱完成字符;
  /V:ON 將c作為定界符啟動延緩環境變量擴展
  /V:OFF 停用延緩的環境擴展
  請注意如果字符串有引號可以接受用命令分隔符&&隔開的多個命令並且由於兼容原因/X與/E:ON相同/Y與/E:OFF相同並且/R與/C相同忽略任何其它命令選項
  如果指定了/C或/K命令選項後的命令行其余部分將作為命令行處理在這種情況下會使用下列邏輯處理引號字符():
  ()如果符合下列所有條件那麼在命令行上的引號字符將被保留:
  不帶 /S 命令選項;
  整整兩個引號字符;
  在兩個引號字符之間沒有特殊字符特殊字符為下列中的一個: <>()@^|;
  在兩個引號字符之間有至少一個空白字符;
  在兩個引號字符之間有至少一個可執行文件的名稱
  ()否則老辦法是看第一個字符是否是一個引號字符如果是捨去開頭的字符並刪除命令行上 的最後一個引號字符保留最後一個引號字符之後的文字如果/D未在命令行上被指定當CMDEXE開始時它會尋找以下REG_SZ/REG_EXPAND_SZ注冊表變量如果其中一個或兩個都存在這兩個變量會先被執行
  HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
  和
  HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
  命令擴展按默認值是啟用的你也可以使用 /E:OFF為某一特定調用而停用擴展你可以在用戶登錄會話上啟用或停用cmdexe所有調用的擴展這要通過設置使用Regeditexe 的注冊表中的一個或兩個REG_DWORD值:
  HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions
  和
  HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions到xx
  用戶特定設置比機器設置有優先權命令行命令選項比注冊表設置有優先權
  命令行擴展包括對下列命令所做的更改和添加:
  Del或EraseColorCD或ChDirMD或MkDirPromptPushdPopdSetSetLocalEnd LocalIFForCallShiftGotoStart(同時包括對外部命令調用所做的更改)As socFtype
  有關詳細信息請鍵入HELP 命令名
  延遲變量環境擴展不按默認值啟用你可以用/V:ON或 /V:OFF命令選項為CMDEXE的某個調用而啟用或停用延遲環境變量擴充你可以在機器上或用戶登錄會話上啟用或停用CMD EXE所有調用的完成這要通過設置使用Regeditexe的注冊表中的一個或兩個REG_DWORD
  值:
  HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion
  和
  HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion到xx用戶特定設置比機器設置有優先權命令行命令選項比注冊表設置有優先權
  如果延遲環境變量擴充被啟用驚歎號字符可在執行時間被用來代替一個環境變量的數值
  文件和目錄名完成不按默認值啟用你可以用/F:ON或/F:OFF命令選項為cmdexe的某個調用而啟用或停用文件名完成你可以在機器上或用戶登錄會話上啟用或停用cmdexe所有調用的完成這要通過設置使用Regeditexe 的注冊表中的一個或兩個REG_DWORD值:
  HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
  HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar
  和
  HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
  HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar
  由一個控制字符的十六進制值作為一個特定參數(例如x是CtrlDx是 CtrlF)用戶特定設置優先於機器設置命令行命令選項優先於注冊表設置
  如果完成是用/F:ON命令選項啟用的兩個要使用的控制符是:目錄名字完成用CtrlD文件名完成用CtrlF要停用注冊表中的某個字符請用空格(x)的數值因為此字符不是控制字符
  如果鍵入兩個控制字符中的一個完成會被調用完成功能將路徑字符長帶光標的左邊如果沒有通配符將通配符附加到左邊並建立相符的路徑列表然後顯示第一個相符的路徑如果沒有相符的路徑則發出嘟嘟聲不影響顯示之後重復按同一個控制字符會循環顯示相符路徑的列表將 Shift 鍵跟控制字符同時按下會倒著顯示列表如果對該行進行了任何編輯並再次按下控制字符保存的相符路徑的列表會被丟棄新的會被生成如果在文件和目錄名完成之間命令選項會發生同樣現象兩個控制字符之間的唯一區別是文件完成字符符合文件和目錄名而目錄完成字符只符合目錄名如果文件完成被用於內置式目錄命令(CDMD或RD)就會使用目錄完成
  將引號用相符路徑括起來完成代碼可以正確處理含有空格或其它特殊字符的文件名同時如果備份然後從行內調用文件完成完成被調用是位於光標右方的文字會被丟棄
  編者按:前邊講了這麼多主要是從原理上介紹了微軟的一種命令擴展和路徑擴展至於
  它要完成的功能對於我們大多數電腦愛好這來說是很有趣並且是實用價值的從小編在http
  ://查詢的資料得知自從Windows NT 以來Windows便具有了和Linux一樣的命令行自動補全的功能不信將HKEY_LOCAL_MACHINE\Software\Microsoft\ Comma
  nd Prosessor\CompletionChar的鍵值改為然後切換到命令行窗口輸入cd c:\wind然後按一個Tab試一下呵呵……系統自動為你輸入了cd c:\windows
  一個有趣的Bug
  在命令行(甚至在其它如Word等圖形界面編輯器中!)調用任何一種中文輸入法後如果在全角中文標點狀態下輸入一次……(可按Shift+^直接從鍵盤輸入)再輸入大寫的任意英文字母或按Shift鍵輸入某些特殊符號則每個字符後面會自動添加一個W…%…不知微軟此舉是何用意?筆者死活想不出這種功能有何用處只能解釋為是一個無關緊要的Bug
  由以上可以看出傳統的DOS在Win時代並不是被完全拋棄而是被發揚光大它已經由歷史上一個獨當一面的操作系統轉變為Win操作系統的有機組成部分有道是尺有所短寸有所長命令行與圖形界面相比自有其獨特魅力我們不應忘記老DOS更不應忽視對命令行操作的了解和使用許多時候一個並不怎麼復雜的操作只需用命令行就能既快又好地完成又為什麼非得要尋找(甚至是開發)一個專門的圖形界面的工具呢?

From:http://tw.wingwit.com/Article/os/xtgl/201311/9353.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.