命令提示字元 (Cmd. exe) 命令行字串限制
本文討論您在命令提示字元 (Cmd.exe) 中從命令提示字元使用的字元串長度限制。 它也提供可用來解決這項限制的方法。
適用於:Windows Server 2012 R2、Windows Server 2008 R2 Service Pack 1、Windows 7 Service Pack 1
原始 KB 編號: 830473
其他相關資訊
您可以在命令提示字元中使用的字串長度上限為 8191 個字元。
這項限制適用於:
- 命令行
- 其他進程繼承的個別環境變數,例如PATH變數
- 所有環境變數擴充
如果您使用命令提示字元來執行批處理檔,此限制也適用於批處理檔。
範例
下列範例示範此限制如何套用至您在命令提示字元中執行的命令,以及您在批處理檔中使用的命令。
在命令提示字元中,下列命令行的總長度不能超過8191個字元:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
在批處理檔中,下列命令行的總長度不能超過8191個字元:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
當您使用命令提示字元執行批次處理檔時,此限制會套用至批處理檔中所包含的命令列。
在命令提示字元中,展開
EnvironmentVariable2
EnvironmentVariable3
之後 的總EnvironmentVariable1
長度不能超過8191個字元:c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3
在批處理檔中,展開參數之後,下列命令行的總長度不能超過 8191 個字元:
ExecutableFile.exe parameter1 parameter2
即使環境變數的 Win32 限制為 32,767 個字元,命令提示字元仍會忽略繼承自父進程且超過其本身限制 8191 個字元的任何環境變數, (適用於操作系統) 。 如需函式的
SetEnvironmentVariable
詳細資訊,請參閱 SetEnvironmentVariableA 函式。
如何解決限制
若要解決此限制,請視方式使用下列一或多個方法:
修改需要長命令行的程式,使其使用包含參數資訊的檔案,然後在命令行中包含檔名。
例如,不要在批處理檔中使用
ExecutableFile.exe Parameter1 Parameter2... ParameterN
命令行,而是修改程式以使用類似下列命令行的命令行,其中 ParameterFile 是包含 parameter1 parameter2 參數 (必要參數的檔案。ParameterN) :ExecutableFile.exe c:\temp\ParameterFile.txt
修改使用大型環境變數的程式,讓環境變數包含少於8191個字元。
例如,如果PATH環境變數包含超過8191個字元,請使用下列一或多個方法來減少字元數:
- 針對資料夾和檔案使用較短的名稱。
- 減少資料夾樹狀結構的深度。
- 將檔案儲存在較少的資料夾中,以便PATH環境變數中需要較少的資料夾。
- 調查可用來減少PATH相依性以尋找 .dll 檔案的可能方法。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應