コマンド プロンプト (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
した後のEnvironmentVariable1
の長さの合計で、EnvironmentVariable3
8191 文字を超えることはできません。c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3
バッチ ファイルでは、パラメーターを展開した後の次のコマンド ラインの合計長に 8191 文字を超えることはできません。
ExecutableFile.exe parameter1 parameter2
環境変数の Win32 の制限は 32,767 文字ですが、コマンド プロンプトは、親プロセスから継承され、(オペレーティング システムに応じて) 8191 文字の独自の制限よりも長い環境変数を無視します。 関数の
SetEnvironmentVariable
詳細については、「 SetEnvironmentVariableA 関数」を参照してください。
制限事項を回避する方法
この制限を回避するには、状況に応じて、次の 1 つ以上の方法を使用します。
長いコマンド ラインを必要とするプログラムを、パラメーター情報を含むファイルを使用するように変更し、コマンド ラインにファイルの名前を含めます。
たとえば、バッチ ファイルでコマンド ラインを
ExecutableFile.exe Parameter1 Parameter2... ParameterN
使用する代わりに、次のコマンド ラインのようなコマンド ラインを使用するようにプログラムを変更します。 ParameterFile は、必要なパラメーター (parameter1 parameter2... を含むファイル)。ParameterN):ExecutableFile.exe c:\temp\ParameterFile.txt
環境変数に 8191 文字未満が含まれるように、大きな環境変数を使用するプログラムを変更します。
たとえば、PATH 環境変数に 8191 文字を超える文字が含まれている場合は、次の 1 つ以上のメソッドを使用して文字数を減らします。
- フォルダーとファイルには短い名前を使用します。
- フォルダー ツリーの深さを減らします。
- PATH 環境変数で必要なフォルダー数を減らすように、ファイルをより少ないフォルダーに格納します。
- ファイルを検索するための PATH の依存関係を減らすために使用できる方法 .dll 調査します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示