プロが教える店舗&オフィスのセキュリティ対策術

Windowsバッチでファイルの読み込みをしようと思っているのですが、
下記コマンドの実行で「ファイルが見つかりません」となります。
※パスにスペースを含むのでusebackqを使用しました。

FOR /F "usebackq tokens=1,2 delims= " %%i in ("c:\temp 1\data.txt") DO echo %%i

WindowsServer2003でうまくいかなかったのですが、
Xpですれば問題なくファイルを読み込めました。
何か差があるのでしょうか?

A 回答 (2件)

バッチ自体には問題ないように見えますね。


アクセス権の関係ということはないですか?
読み込み権限が無いユーザーで実行した場合もファイルが見つからないと言われるようですが・・・
    • good
    • 0
この回答へのお礼

アクセス権というご指摘で問題点がわかりました。
読み込もうとしたファイルが他のプロセスにてロックされていることが原因でした。

typeやmoreで表示できてもforでの読み込みはまた別なんですね。。
また、ファイルが見つかりませんという表示に惑わされました。

ご指摘がないともっと悩んでいたと思います。
本当にありがとうございました。

お礼日時:2009/04/24 19:24

うーん、2003でもOKな気がしますが、「うまくいかなかった」とは、どのようにうまくいかなかったのでしょうか?


エラーになったのだとしたら、どのようなエラーでしょうか?

スペースを含まないMS-DOSのレガシー表記にしてもダメですかね?

"c:\temp 1\data.txt"

"c:\TEMP1~1\data.txt"
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今回の件に直接関係なかったのですが
表記のしかたの勉強になりました。

お礼日時:2009/04/24 19:15

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