電子書籍の厳選無料作品が豊富!

基本的な質問ですみません。
下記バッチがあるとします。

C:\HOME\BAT\EXP\LIST\DEL.BAT

バッチでは下記ディレクトリ内ファイルを削除しようと
考えてます。

C:\HOME\LOG\JOB\JOB.LOG

でバッチで「DEL ../../../LOG/JOB/JOB.LOG」と記述しましたが
削除されません。

コマンドプロンプトで「CD ../../../」としても上記「HOME」フォルダに
移動できず絶対パスだと移動できます。

「DEL」「CD」コマンドは相対パスの場合、何かコツがあるのでしょうか?。
それとも単に間違えているのか・・。

アドバイスお願いします。

A 回答 (5件)

相対パスは、カレントディレクトリを基準にするので、


それが災いしてちゃんと動かないのだと思います。
それと、DEL.BATのような名前は、コマンドDELと識別が
難しくなるのでやめた方が良いでしょう。

たぶん、"c:\home\log\exp\list"をカレントに、DEL。BATを起動すると・・
DEL.BAT内で、DELコマンドでなく、DEL.BATを再帰的に呼び出してしまう
可能性があります。

また、DEL.BAT内で、/による表現を使っていますが・・
Windows/DOSらしく、\とした方が間違いありません。
/でも動く場合はありますが、必ず動くとは限らない。
(これが理由かも??)

突っ込みどころが多いので、原因が確定できません。
    • good
    • 0

delコマンドで相対パス指定はできなかったと思います。



>コマンドプロンプトで「CD ../../../」としても上記「HOME」フォルダに
>移動できず絶対パスだと移動できます。
これはよくわかりません。カレントが「C:\HOME\BAT\EXP\LIST」であれば先のコマンドで移動は可能だと思いますが・・・・

ということで、私も#3回答者様の方法がよいのではと思います。
絶対パスを指定したくないのであれば、他の方法を考えるしかないですね。
(環境変数からのパス取得とか、ファイル名検索とか・・・)
    • good
    • 0

BATファイルの実行はどちらでやられているのでしょうか?


相対パスとは、実行時のパスからの相対的な位置を言うのでBATファイルの所在とは関係ありません。
BATファイルの同じパスに移動してから起動するか、BATファイルの頭の方にBATファイルのあるパスまで移動するコマンドを入れるとよろしいのではないでしょうか?
エクスプローラーなどからダブルクリックなどで実行する用途があるならBATファイルの頭の部分に移動コマンドの追加がおすすめです。
    • good
    • 0

私良く解りませんか^^;


参考になれば。
http://www.cj-c.com/faq/pass.htm

参考URL:http://www.shoshinsha.com/hp/1hour/know/pass.html
    • good
    • 0

DOSでは'\'がパスの区切りです。


DEL ..\..\..\LOG\JOB\JOB.LOG
じゃダメだったのかな?
    • good
    • 0

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