「覚え間違い」を教えてください!

すみません。しょうもない内容かもしれないのですが、
いきづまりまして、お知恵を拝借に来ました。

バッチを今作っておりまして、そこで以下のfor文があります。
実際はまた違う事をしているのですが、わかり易く書きました。
for /f "test" %%I in ("c:\filename.txt") do @echo "%%I"

filenameの中身は、以下の通りです。
Windows Media Player
Windows ムービー メーカー

実行すると結果は以下の通りです。
Windows
Windows

希望結果は、以下のようになります。
Windows Media Player
Windows ムービー メーカー

for /?で%~Iやら%~fIやら%~dIやら%%~fIやらしてみたのですが、
どうもIにスペース以下が入っていないような気がします。

もしかしてバッチ以外でやった方が楽だよ。とかあると思うのですが、
なにぶん疎いため出来るならバッチできる方法をご教授願います。
不可能であれば、Windows+α環境で出来る(WSHなど)方法でも構いません。
よろしくお願いいたします。

A 回答 (2件)

「分かりやすく書く」のはいいんだけど, ちゃんと動作するように書こうよ....


ちなみに for のヘルプを読めば分かる (?) ように delims でも tokens でも対処できます.
for /f "delims=" %%I in ("c:\filename.txt") do @echo "%%I"
または
for /f "tokens=*" %%I in ("c:\filename.txt") do @echo "%%I"
でいいはず.
    • good
    • 0
この回答へのお礼

>「分かりやすく書く」のはいいんだけど, ちゃんと動作するように書こうよ....
おっしゃるとおりです。
投稿した後すぐに気づいたのですが、編集できず。
大変お手数をおかけしました。

両方とも動かしてみました。
両方ともファイル名しか表示せず…
ですがTacosanのアドバイスでうまい事動きました。
ありがとうございます。

お礼日時:2009/04/15 17:30

テキストファイルの内容を単に表示するだけなら



for %%I in ("c:\filename.txt") do type %%I

上記で表示できます。(Windows の Help の例文とおりです。)
ファイル名に空白が無ければ

for %%I in (c:\filename.txt) do type %%I

でもOKです。
    • good
    • 0
この回答へのお礼

>実際はまた違う事をしているのですが、わかり易く書きました。
ご回答ありがとうございました。
質問内容をわかりやすく書きたかったので、echoにしたのです。

お礼日時:2009/04/15 17:37

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


おすすめ情報