命令提示字元 (Cmd.exe) 命令列字串限制

文章翻譯 文章翻譯
文章編號: 830473 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您從命令提示字元下,在命令提示字元 (Cmd.exe) 和方法,您可以用來解決這種限制使用的字串的長度限制。

其他相關資訊

在電腦上執行 Microsoft Windows XP 或稍後,您可以使用在命令提示字元的字串的長度上限是 8191 個字元。在執行 Microsoft Windows 2000 或 Windows NT 4.0 電腦,您可以使用在命令提示字元的長度上限是字串的 2047年個字元。

這項限制適用於命令列的繼承其他處理程序和所有環境變數擴充的個別的環境變數 (例如 PATH 變數)。如果使用命令提示字元執行批次檔案,這項限制也適用於批次檔處理。

範例

下列清單會提供這項限制套用至您在命令提示字元中執行的命令和您在批次檔中使用的命令的方式的一些範例。
  • 在命令提示字元中,並在命令提示字元使用下列命令列的總長度不能包含個以上的 2047年或 8191 (視需要您的作業系統) 的字元:
    cmd.exe/k ExecutableFile.exe parameter1、...parameter2parameterN
  • 在批次檔中您在批次檔中使用下面的命令列的總長度不能包含個以上的 2047年或 8191 (視需要您的作業系統) 的字元:
    cmd.exe/k ExecutableFile.exe parameter1、...parameter2parameterN
    這項限制適用於當您使用命令提示字元執行批次檔時,批次檔案中包含的命令列。
  • 在命令提示字元中 EnvironmentVariable1 展開 EnvironmentVariable2 並不能包含 EnvironmentVariable3 之後的總長度超過 8191 或是 2047年字元 (視您作業系統的系統):
    c: > 設定EnvironmentVariable1 = EnvironmentVariable2EnvironmentVariable3
  • 在批次檔中下列的命令列後展開環境變數,在命令列中的總長度不能包含個以上的 2047年或 8191 (視需要您的作業系統) 的字元:
    ExecutableFile.exe parameter1parameter2
  • 即使 Win32 限制的環境變數是 32,767 個字元,命令提示字元會忽略任何環境變數,繼承自父處理序,並會比其本身限制 (視需要作業系統) 的 2047年或 8191 個字元長。如需有關 SetEnvironmentVariable 函式的詳細資訊,請造訪下列 Microsoft 網站]:
    http://msdn2.microsoft.com/en-us/library/ms686206.aspx

如何解決此限制

要解決此限制,使用一或多個下列的方法 (視您的情況):
  • 修改要求長指令行,讓他們使用包含參數的資訊的檔案的程式,並再將檔案的名稱包含在命令列。

    比方說代替使用 ExecutableFile.exe Parameter1 Parameter2 ...ParameterN 批次檔中命令列修改程式使用是類似下列的命令列 ParameterFile 其中是一個檔案,其中包含所需的參數的命令列 (parameter1 parameter2 ...ParameterN):
    ExecutableFile.exe c:\temp\ ParameterFile.txt
  • 修改使環境變數包含少於 2047年或 8191 (視需要您的作業系統) 的字元,使用大型的環境變數的程式。

    比方說如果在 PATH 環境變數包含以上任一 2047年或 8191 個字元 (視您的作業系統),使用一或多個下列方法來減少字元數目:
    • 使用較短的資料夾和檔案名稱。
    • 減少資料夾樹狀目錄深度。
    • 如此一來較少資料夾需要 PATH 環境變數中,請將檔案儲存在較少資料夾中。
    • 調查可能的方法可以用來減少 PATH 相依性來尋找.dll 檔案。

屬性

文章編號: 830473 - 上次校閱: 2007年2月1日 - 版次: 1.3
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows XP Home Edition (家用版)
  • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
關鍵字:?
kbmt kbinfo KB830473 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:830473
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com