質問: バッチファイルに以下のような記述をしておりますが、 IFのどれにも該当しない場合、該当するまで頭からコマンドを繰り返すという処理にしたいです。 良い方法がございましたらお教えください。 >記述 IF NOT EXIST C:\Users\Desktop\IN1\*abc* ( move C:\Users\Desktop\IN2\*_* C:\Users\Desktop\IN1\ ) else IF NOT EXIST C:\Users\Desktop\IN3\*_* ( move C:\Users\Desktop\IN2\*_* C:\Users\Desktop\IN3\ ) else IF NOT EXIST C:\Users\Desktop\IN4\*_* ( move C:\Users\Desktop\IN2\*_* C:\Users\Desktop\IN4\ ) >説明 ・IN1に「abc」を含むファイルが無ければIN2⇒IN1へファイルを移動 ・IN3に「_」を含むファイルが無ければIN2⇒IN3へファイルを移動 ・IN4に「_」を含むファイルが無ければIN2⇒IN4へファイルを移動 IN1、IN3、IN4の中のファイルは不定期的に削除されていますが、 3つすべてのフォルダにファイルが存在する状況も発生するので その場合は繰り返し処理を実行して先にファイルが無くなったところに ファイル移動をさせたいです。 ファイルがINI2から全てなくなるまで実行するにはどうすればよいでしょうか。 よろしくお願い致します。
回答: IN2フォルダーに当該ファイルがあるかどうか調べて、あれば処理の先頭にジャンプすれば良いだけのような気がしますが。 ``` :LOOP 何かの処理 : : IF NOT EXIST C:\Users\Desktop\IN1\*abc* ( move C:\Users\Desktop\IN2\*_* C:\Users\Desktop\IN1\ ) else IF NOT EXIST C:\Users\Desktop\IN3\*_* ( move C:\Users\Desktop\IN2\*_* C:\Users\Desktop\IN3\ ) else IF NOT EXIST C:\Users\Desktop\IN4\*_* ( move C:\Users\Desktop\IN2\*_* C:\Users\Desktop\IN4\ ) if exist C:\Users\Desktop\IN2\*_* goto :LOOP ```