Windows環境においてバッチファイルやコマンドプロンプトを使用する際、空白を含むパスや文字列を指定したい場合があります。このとき、空白文字をそのまま打ち込むとエラーとなる場合があります。
この記事では、コマンドプロンプトにおいて空白を含む文字列によるトラブルの例と、空白文字を正しく扱う方法を紹介します。
空白文字によるトラブルの例
たとえば、以下のようにcdコマンドで「C:\Program Files」に移動する場合を考えます。
cd C:\Program Files
この場合、cdコマンドは、ユーザの意図とは異なり2つのコマンドパラメータを受け取ることになります。ひとつめは “C:\Program” 、もうひとつが “Files” です。
これは、コマンドプロンプトにおけるコマンドパラメータの区切りが空白文字のためです。空白を含むパスや文字列を引数として渡す場合は、それらをまとめてダブルクォート("
)で囲む必要があります。
コマンドパラメータにおける空白文字の扱い方
ファイルパスやコマンドのパラメータに空白が含まれる場合、以下のようにダブルクォートを使用して囲みます。
cd "C:\Program Files"
このようにすることで、”C:\Program Files” が単一のコマンドパラメータとして扱われるようになります。
使用例
空白を含むパスにあるファイルをコピーする場合
スペースを含むコマンドパラメータをダブルクォートで囲います。
copy "C:\My Documents\file.txt" D:\Backup\file.txt
空白を含むパスにあるプログラムを実行する場合
コマンドを絶対パスで指定する場合なども、パスに空白がある場合はダブルクォートで囲うことで実行できます。
"C:\Program Files\My Application\app.exe"
参考:上記をダブルクォートで囲わない場合は、”C:\Program” コマンドに対して、コマンドパラメータとして “Files\My” と “Application\app.exe” を渡す、と解釈されます。
まとめ
この記事では、コマンドプロンプトにおいて空白を含む文字列を扱う方法を紹介しました。コマンドプロンプトで空白を含むパスや文字列を扱う際は、ダブルクォートの付け忘れに注意しましょう。