やりたいこと検索

ファイルが存在している場合にのみコマンドを実行する

 

目次

その他の関連しそうな記事

 

ファイルが存在している場合にのみコマンドを実行する

バッチファイルではファイルの存在を確認して、ファイルが存在していれば指定したコマンドを実行し、存在していない場合は何もしないということが可能です。それには、以下のようなコマンドを用います。

「ファイル名」には存在を確認したいファイル、「コマンド」にはファイルが存在している場合に実行したいコマンドが入ります。

例えば、「file.txt」ファイルが存在している場合に、「ファイルが存在しています。」というメッセージをコマンドプロンプト上に表示するバッチファイル「if_exist_file_echo.bat」は以下のようになります。

以下、同じフォルダに「file.txt」ファイルが存在しているときの実行結果です。

もちろん、このバッチファイルは「file.txt」が存在しないときには、何も表示されません。

次に、ファイルが存在しない場合も何らかのコマンドを実行したいときには、「else」文を付け足すことができます。それは、以下のように書けます。

例えば、「if_exist_file_echo.bat」を改良して、ファイルが存在しない場合にも「echo」コマンドでメッセージを出力する場合は以下のようなバッチファイルになります(if_exist_file_echo2.bat)。

以下、ファイルが存在したときと、しない場合の出力結果です。

 

ファイルが存在している場合にファイルを削除する

この「if exist」文をよく使用するのは、「ファイルがあるときだけそのファイルを削除する」というときです。ファイルの削除は「del」コマンドで行えますが、もし存在しないファイルを削除しようとすると、以下のような警告が表示されます。

警告がでるだけで、特にプログラム上は問題ないのですが、この警告を嫌う場合によく「if exist」文が用いられます。つまり、ファイルがあるときだけ「del」コマンドを実行すればよいので、以下のように書きます。

このように、すればファイルが存在しない場合は「del」コマンドは実行されないので、警告も出ません。この形が「if exist」文が最も使われる形と言ってもいいでしょう。

 

ファイルが存在していない場合にのみコマンドを実行する

今度は逆に、ファイルが存在しない場合にのみコマンドを実行します。それには、「if」と「exist」の間に「not」を挿入して、

とします。「ファイル名」に指定したファイルがないときにだけ、コマンドが実行されます。

もちろん、「else」文も追加することができ、以下の文法も使用可能です。

以下のバッチファイルは、ファイルが存在するときとしないときの「echo」コマンドによる出力メッセージを変化させた例です(if_not_exist_file_echo2.bat)。

このバッチファイルをファイルが存在しないとき、そして存在するときと連続で実行した結果を以下に示します。

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメントを残す