• ベストアンサー

バッチでファイルの読み込み

Windowsバッチでファイルの読み込みをしようと思っているのですが、 下記コマンドの実行で「ファイルが見つかりません」となります。 ※パスにスペースを含むのでusebackqを使用しました。 FOR /F "usebackq tokens=1,2 delims= " %%i in ("c:\temp 1\data.txt") DO echo %%i WindowsServer2003でうまくいかなかったのですが、 Xpですれば問題なくファイルを読み込めました。 何か差があるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • K6A
  • ベストアンサー率35% (59/164)
回答No.2

バッチ自体には問題ないように見えますね。 アクセス権の関係ということはないですか? 読み込み権限が無いユーザーで実行した場合もファイルが見つからないと言われるようですが・・・

beo
質問者

お礼

アクセス権というご指摘で問題点がわかりました。 読み込もうとしたファイルが他のプロセスにてロックされていることが原因でした。 typeやmoreで表示できてもforでの読み込みはまた別なんですね。。 また、ファイルが見つかりませんという表示に惑わされました。 ご指摘がないともっと悩んでいたと思います。 本当にありがとうございました。

その他の回答 (1)

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

うーん、2003でもOKな気がしますが、「うまくいかなかった」とは、どのようにうまくいかなかったのでしょうか? エラーになったのだとしたら、どのようなエラーでしょうか? スペースを含まないMS-DOSのレガシー表記にしてもダメですかね? "c:\temp 1\data.txt" ↓ "c:\TEMP1~1\data.txt"

beo
質問者

お礼

回答ありがとうございます。 今回の件に直接関係なかったのですが 表記のしかたの勉強になりました。

関連するQ&A