- ベストアンサー
バッチでファイルの読み込み
Windowsバッチでファイルの読み込みをしようと思っているのですが、 下記コマンドの実行で「ファイルが見つかりません」となります。 ※パスにスペースを含むのでusebackqを使用しました。 FOR /F "usebackq tokens=1,2 delims= " %%i in ("c:\temp 1\data.txt") DO echo %%i WindowsServer2003でうまくいかなかったのですが、 Xpですれば問題なくファイルを読み込めました。 何か差があるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
バッチ自体には問題ないように見えますね。 アクセス権の関係ということはないですか? 読み込み権限が無いユーザーで実行した場合もファイルが見つからないと言われるようですが・・・
その他の回答 (1)
- utakataXEX
- ベストアンサー率69% (711/1018)
回答No.1
うーん、2003でもOKな気がしますが、「うまくいかなかった」とは、どのようにうまくいかなかったのでしょうか? エラーになったのだとしたら、どのようなエラーでしょうか? スペースを含まないMS-DOSのレガシー表記にしてもダメですかね? "c:\temp 1\data.txt" ↓ "c:\TEMP1~1\data.txt"
質問者
お礼
回答ありがとうございます。 今回の件に直接関係なかったのですが 表記のしかたの勉強になりました。
お礼
アクセス権というご指摘で問題点がわかりました。 読み込もうとしたファイルが他のプロセスにてロックされていることが原因でした。 typeやmoreで表示できてもforでの読み込みはまた別なんですね。。 また、ファイルが見つかりませんという表示に惑わされました。 ご指摘がないともっと悩んでいたと思います。 本当にありがとうございました。