プロが教えるわが家の防犯対策術!

DOSコマンドのFOR文で空白を含むファイルパスの指定方法

DOSコマンドのFOR文で、FORの繰り返し条件に
空白を含むファイルパスを指定する方法を教えてください。


やりたいことのイメージはこんな感じです。
for /f %%a in (C:\Documents and Settings\user\デスクトップ\list.txt) do (
echo %%a
)

バッチファイルとlist.txtを同じディレクトリに配置し、かつ
FOR文の前にCDを含めない事を条件にすれば
下記でもうまくいきます。
for /f %%a in (list.txt) do (
echo %%a
)

他のコマンドとの関係からこの前の処理で一度ディレクトリの
変更を行なう処理を含むため、FOR文で指定するファイルは
絶対パス指定をしたいと思っています。

簡単なことのような気もするのですが、
もしかしたら出来ないのかもしれないとも思っています。


FORの繰り返し条件に空白を含むファイルパスを
指定することはできるのでしょうか?
出来るのならばその方法を教えてください。

よろしくお願いします。

A 回答 (3件)

for文の括弧内に空白を含むファイルパスを指定したい時には、"usebackq"オプションを使用します。


このオプションにより、括弧内で使用される各種引用符の使い方が変わります。

使用しない⇒"usebackq"を使用する
ファイル名⇒"ファイル名" (空白を含むファイルパスが使用できるようになる)
"文字列"⇒'文字列'
'コマンド'⇒`コマンド`

for /f "usebackq" %%a in ("C:\Documents and Settings\user\デスクトップ\list.txt") do (
echo %%a
)

詳しくは、"for /?"でヘルプを参照してください。
    • good
    • 8
この回答へのお礼

「usebackq」は存在は知っていました。
しかし何の意味があるのか理解していませんでした。
こういうときに使うのですね。

「usebackq」を指定することにより期待通りの結果を得る事が出来ました。
大変参考になりました。ありがとうございました。

お礼日時:2010/03/02 15:23

空白を含むファイルパスを"文字列"として指定して試してみましたか。


たとえば下記のような指定です。

"C:\Documents and Settings"

"C:\Documents and Settings\user\デスクトップ\list.txt"

この回答への補足

試しています。
それをすると、FOR文ではまったく違う意味の処理になります。
そもそもファイルの参照ではなくなってしまいますからね。
それゆえ困っています。

補足日時:2010/03/02 15:21
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/11/06 10:29

ヘルプは見ましたか?

    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/11/06 10:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A