コマンド プロンプト (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, parameter2 ... parameterN
  • バッチ ファイルの場合、バッチ ファイルで使用する以下のコマンド ライン全体の長さは、(使用するオペレーティング システムに応じて) 2047 文字または 8191 文字を超えることはできません。
    cmd.exe /k ExecutableFile.exe parameter1, parameter2 ... parameterN
    この制限は、[コマンド プロンプト] を使用してバッチ ファイルを実行するときに、バッチ ファイルに含まれるコマンド ラインに適用されます。
  • [コマンド プロンプト] の場合、EnvironmentVariable2EnvironmentVariable3 を展開した後の EnvironmentVariable1 の全体の長さは、(使用するオペレーティング システムに応じて) 2047 文字または 8191 文字を超えることはできません。
    c:> set EnvironmentVariable1=EnvironmentVariable2EnvironmentVariable3
  • バッチ ファイルの場合、コマンド ラインで環境変数を展開した後の以下のコマンド ライン全体の長さは、(使用するオペレーティング システムに応じて) 2047 文字または 8191 文字を超えることはできません。
    ExecutableFile.exe parameter1parameter2
  • Win32 における環境変数の文字数の制限は 32,767 文字ですが、[コマンド プロンプト] では、親プロセスから受け継がれた環境変数のうち、独自の制限である (使用するオペレーティング システムに応じて) 2047 文字または 8191 文字を超えるものは無視されます。 SetEnvironmentVariable 関数の詳細については、次のマイクロソフト Web サイトを参照してください。
    http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdllpro/html/_win32_setenvironmentvariable.asp

制限を回避する方法

この制限を回避するには、状況に応じて以下のいずれかの方法を 1 つまたは複数使用します。
  • 長いコマンド ラインを必要とするプログラムは、パラメータ情報を格納したファイルを使用するように変更し、そのファイル名をコマンド ラインに含めます。

    たとえば、バッチ ファイルで ExecutableFile.exe Parameter1 Parameter2 ...ParameterN というコマンド ラインを使用する代わりに、次のようなコマンド ラインを使用するようにプログラムを変更します。ParameterFile の部分には、必要なパラメータ (parameter1 parameter2 ...ParameterN) が格納されたファイル名が入ります。
    ExecutableFile.exe c:\temp\ParameterFile.txt
  • 使用する環境変数が長いプログラムは、環境変数に格納される値が (使用するオペレーティング システムに応じて) 2047 文字または 8191 文字を超えないように変更します。

    たとえば、PATH 環境変数に格納される値が (使用するオペレーティング システムに応じて) 2047 文字または 8191 文字を超える場合、以下の方法を使用して文字数を減らします。
    • フォルダやファイルの短い名前を使用します。
    • フォルダ ツリーの階層を浅くします。
    • PATH 環境変数で必要となるフォルダ数が少なくなるように、各ファイルの格納先フォルダを減らします。
    • .dll ファイルの検索における PATH への依存度を減らすために使用できる方法を検討します。

プロパティ

文書番号: 830473 - 最終更新日: 2005年11月11日 - リビジョン: 1.2
この資料は以下の製品について記述したものです。
  • 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
  • Microsoft Windows 2000 Server
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
キーワード:?
kbinfo KB830473
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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