• ベストアンサー
  • すぐに回答を!

MS-DOSのBATファイルでのDELについて。

早速質問させていただきます。 <内容> BATファイルでdelコマンドを使っているのですが、もしファイルが無い時にDELコマンドを使用すると、ERRORLEVELで0以外の値が帰ってきます。 そのため条件文でファイルが存在するなら、DELを実行しないというようにしたいのですが、DOS上にあるファイル名を見つけることは出来るのでしょうか? <ソース> if ここにファイルがあるか無いかの条件文を記入したい。 del D:\a.txt if NOT %ERRORLEVEL% == 0 GOTO 200

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数1145
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1
  • a-kuma
  • ベストアンサー率50% (1122/2211)

> <ソース> > if ここにファイルがあるか無いかの条件文を記入したい。 > del D:\a.txt > if NOT %ERRORLEVEL% == 0 GOTO 200 IF EXIST d:\a.txt del d:\a.txt IF NOT %ERRORLEVEL% == 0 GOTO 200 という感じでしょうか。 # DOS のバッチなんて久しぶりなので、自信はありません (^^;

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 MS-DOSは古いので、結構わすれているし・・・・ たすかりました。

関連するQ&A

  • batファイルで結果を表示しない方法

    batファイルで以下のようにレジストリキーの有無を確認し処理を分けたのですが、キーがあった場合には指定したキー下が表示され、キーがない場合には「エラー: 指定されたレジストリ キーまたは値が見つかりませんでした」が表示されてしまいます。 reg query キー名 IF error level 1 goto A IF error level 0 goto B reg queryの結果を表示しないにはどのようにしたら良いでしょうか?

  • BATのIF文について質問

    @echo off cls set LOGFILE=C:\%COMPUTERNAME%.log find C:\temp\setting.txt "SERVER01" /I if %ERRORLEVEL% == 1 GOTO END if %ERRORLEVEL% == 0 ( set MESSAGE=SEVER01の環境です echo %MESSAGE% echo %MESSAGE% >> %LOGFILE% GOTO SET1 ) :SET1 echo テスト >> %LOGFILE% :END こんな簡単なBATを作成してみましたがERRORLEVELが0の時処理されません (「SEVER01の環境です」がLOGに書き込まれません) (もちろんsetting.txtには「SERVER01」の文字が入ってます) (FINDのあと、「echo %errorlevel」を記述して0にもなっているのですが) IFの構文として間違っていますか?どなたかご教授ください。 OSはWindowsXP SP3 64Bitです。

  • batファイルの結果をテキストに吐き出すには?

    以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか? (とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。) henkou.bat -------------------------------------- net user "test user1" ps123456 /domain net user "test user2" ps456789 /domain henkou.bat > c:\henkou結果.txt pause -------------------------------------- 吐き出されたhenkou結果.txt -------------------------------------- C:\>net user "test user1" ps123456 /domain -------------------------------------- DOS画面(吐き出したいもの) -------------------------------------- C:\>net user "test user1" ps123456 /domain コマンドは正常に終了しました。 C:\>net user "test user2" ps456789 /domain コマンドは正常に終了しました。 C:\>henkou.bat 1>c:\henkou結果.txt --------------------------------------

  • リネームの為のbatファイル作成

    Bmpファイル名の頭に全てP_がついています。 それを削除するbatファイルを作成しています。 P_****.bmp→****.bmp 下記を作成しましたが、★の部分で詰まっています。 ------- @echo off IF EXIST b.bat del b.bat for %%I in (J_*.bmp) do echo ren %%I ★%%I>>b.bat call b.bat ------- どなたかご教授ください。 よろしくお願いします。

  • ファイル削除不能  DOS8.3、DEL 

    Winxp PRO SP2 デスクトップに出来てしまった "A-xo0xxxxxxXxxX[1].kkkkkkkk." と言った形式のファイルがどうしても削除できません。 [] が使われていることや 最後に . があること、最後だけでなく 手前にも . があること、ファイル名が若干長いこと、 サイズが0バイト、などが特徴です。 kkkkkkkの部分は予約語ではありません。 このファイルを ・エクスプラーラから。 ・DOSコマンド(8.3形式)から delコマンド。 ・DOSコマンドで  del "\\?\c:Docume..省略..\A-xo0xxxxxxXxxX[1].kkkkkkkk."  (\\c\ がポイント) ・ディスクのチェック後上記を再チャレンジ。 などを行っても消えてくれません。 エクスプロラーで言うところの 「送り側のファイルまたはディスクから読み取れません」 状態です。 DOSでは DIR で見ても表れてもくれません。 (ファイル名の最後が.だから?) どうしてよいものか途方に暮れています。 ちなみにデスクトップ上に上記のようなファイルが 2つあり、2つとも同じです。 また半透明で隠しファイルっぽくなっていますが プロパティで見ると、属性には、読み取り専用にも隠しファイルにも チェックは入っていません。 どうすれば消去できるでしょうか? ご教授くださいませ。

  • 大量のファイルをbatファイルでフォルダ整理したい

    初めて質問させていただきます。 バッチファイルを使って、一気にフォルダの整理を行いたいと考えています。 詳しい方には簡単なことだと思いますが、そのあたりの知識に乏しく ネットで拾ったコマンドをあれこれ触ってみましたが、どうにもうまくいかず・・。 こちらで質問をさせていただく次第です。 1フォルダあたり数百~2000ファイルが保存されているフォルダが大量にあり、 それぞれのファイルのファイル名は7~8桁の番号 (連続ではない、数字は半角だが、たまに全角や半角のスペースあり)がつけられております。 これを、100ファイルずつサブフォルダに格納し、そのサブフォルダ名を 1つ目のフォルダ「1番目のファイル名-100番目のファイル名」 2つ目のフォルダ「101番目のファイル名-200番目のファイル名」 ・・・ として整理したいのです。 具体的には、 フォルダ「A」   100001.txt   ・・1番目   100005.txt     :   100500.txt   ・・100番目   100505.txt   ・・101番目     :       100705.txt   ・・200番目      ↓ フォルダ「A」   フォルダ「100001-100500」     100001.txt     100005.txt       :    フォルダ「100505-100705」     100505.txt   ・・101番目     100705.txt   ・・200番目 といった感じにしたいのです。        上位フォルダから一気に処理できれば一番よいのですが、 フォルダを1つ1つ指定してでも構いませんので、 どなたか上記の動きを実現できるbatファイルを教えていただけませんでしょうか? よろしくお願いいたします。

  • BATファイルによるfcコマンドでのファイル比較のエラー

    BATファイルによる、fcコマンドでのファイル比較を行いたいのですが、直接コマンドプロンプトで実行した場合では、正常に結果が指定ファイルに出力されるのに対して、BATファイルで同様のコマンドを実行しても, fcコマンドの比較結果が正常に出力されません。 原因を分かる方がいらっしゃいましたら、教えて頂けますでしょうか? 実行するfcコマンド内容 fc c:\a.txt c:\b.txt > c:\c.txt

  • ORACLEでのexportのbatファイルの記述

    Windows2000ServerでOracle8.1.7を使用しています。 定期的にバックアップを取りたいため、exportを行う Batファイルを以下のように記述しましたが、うまくいきません。 ■batファイル----------------------- exp user/password parfile=EXP.TXT ----------------------------------- ■EXP.TXT owner=owner file=d:\back\exp.dmp log=d:\back\backup.log grants=y indexes=y ----------------------------------- このbatファイルを実行すると、文章ではうまく表現できないのですが 「exp user/password parfile=EXP.TXT」 の部分がDOS窓上で永遠に何行もスクロールしていっこうに コマンドが実行されません。 ただ「exp user/password parfile=EXP.TXT」と dos窓をあけて手入力するときちんと実行されます。 oracle7.3.4でも「exp73」で行えばこのbatファイルで きちんとexportが始まります。 ORACLEというよりはdosの知識かと思われますが どなたか、きちんと実行できる方法を教えてください。

  • bat サブルーチンのERRORLEVELについて

    バッチのサブルーチンのERRORLEVELについて質問です。 サブルーチン内でERRORLEVELを返すコマンドを実行したいのですが、 親ルーチンにそのERRORLEVELを共有したくない場合、何か方法はありますか? ============================================================ [1.bat] SET MSG1="NOTFOUND" SET MSG2="found!" echo %ERRORLEVEL% FIND %MSG1% 2.bat REM %ERRORLEVEL%は1に echo %ERRORLEVEL% CALL :LOG echo %ERRORLEVEL% FIND %MSG2% 2.bat REM %ERRORLEVEL%は0に echo %ERRORLEVEL% CALL :LOG echo %ERRORLEVEL% REM %ERRORLEVEL%は0であって欲しいが0に pause EXIT 1 :LOG FIND %MSG1% hogehoge.log REM %ERRORLEVEL%は1に ============================================================ [2.bat] found! ============================================================ [hogehoge.log] 空 ============================================================

  • MS-DOSのコマンドでファイルをクリアするコマンドありますか?

    DOSに関してはシロート同然のわたしです。 お助け下さい! あるテキストファイルをの中身だけを空にしたいのですが、 MS-DOSのコマンドで、ファイル名を指定して ファイルの中身を全て消すコマンドってありますでしょうか? ある様でしたら、実際のコーディング例も教えていただけませんか? (「aaa.txt」と言うファイルをクリアするとしたら・・・?) それと、もし、MS-DOSのコマンドの一覧が分かるホームページなどありましたら合わせて教えていただけませんでしょうか?