- ベストアンサー
【条件分岐】教えてください【バッチファイル】
●条件 ・\\192.168.*.***のXフォルダにあるファイルAが存在する場合、 kakunin.batを実行する。 ・\\192.168.*.***のXフォルダにファイルAが存在しない場合、 sakusei.batを実行する。 ※kakunin.batとsakusei.batは作成済み。 上記の条件でバッチファイルを作成したいのですが、 記述の仕方などがいまいちよくわかりません。 ご存知の方おられましたら、お教え願いたいと存じます。 宜しくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
更にサンプルです。 @ECHO OFF SET CHECK= ECHO \\192.168.*.***のXフォルダのファイルAにデータを移行しましたか? SET/P "CHECK="移行済みの場合:1、移行していない場合:2を押下。[%CHECK%]:" IF %CHECK% == 1 goto SHORI1 IF %CHECK% == 2 goto SHORI2 echo 入力値が無効です。 goto EXT :SHORI2 call iko :SHORI1 call kakunin :EXT
その他の回答 (5)
- Yeti21
- ベストアンサー率47% (396/830)
では、入力値による判定のサンプルです。 ECHO OFF SET CHECK= ECHO \\192.168.*.***のXフォルダのファイルAにデータを移行しましたか? SET/P "CHECK="移行済みの場合:1、移行していない場合:2を押下。[%CHECK%]:" IF %CHECK% == 1 call kakunin IF %CHECK% == 2 call sakusei
- Yeti21
- ベストアンサー率47% (396/830)
CALLで存在チェックという意味でしょうか? 拡張機能で何かあるのかもしれませんがちょっとどういうものかわかりません。 ちなみに、サンプルの「START」は「CALL」でも良いです。 STARTは色々なものを起動しますが、バッチファイルの起動なら逆に CALLの方が専門です。
補足
記述してみたところ、「call」の方でうまくいきました。 しかし、新たに条件などが加わって やはり別の記述にしなければならなくなりました。 (【文字列1==文字列2】というような記述をしたいみたいです。) (1)・・・\\192.168.*.***のXフォルダのファイルAにデータを移行したか問いかける ⇒ 移行済みんの場合:1、移行していない場合:2を押下 (2)・・・1のとき、kakunin.batを実行する 2のとき、iko.batを実行し、その後、kakunin.batを実行する 上記の場合はどのように作成すればよろしいでしょうか? 宜しくお願いいたします。
- Yeti21
- ベストアンサー率47% (396/830)
EXISTを使用しないというのはどういう意味でしょうか? EXISTが存在チェックなので、この条件の場合は外せません。 それとも、仰っているのは下記のように各々判断するパターンでしょうか? IF EXIST \\192.168.*.***\Xフォルダ\ファイルA START kakunin.bat IF NOT EXIST \\192.168.*.***\Xフォルダ\ファイルA START sakusei.bat また、命令が複数に渡るような場合、以下のようにgotoで飛ばしても良いです。 IF EXIST \\192.168.*.***\Xフォルダ\ファイルA goto ARI <存在しない場合の処理> goto EXT :ARI <存在した場合の処理> :EXT
補足
なるほど。 ファイルの存在チェックには“exist”を使用するということなのですね? 【if 文字列 == 文字列】という記述で表示し、 callを用いて実行する方法がある、というようなことを聞いたのですが、 このやり方ではなくexistを使ってYeti21さんのように記述すればよろしいのですね! ありがとうございます。
- Yeti21
- ベストアンサー率47% (396/830)
ちょっと訂正です。 IF EXIST \\192.168.*.***\Xフォルダ\ファイルA (START kakunin.bat) ELSE (START sakusei.bat)
補足
ありがとうございます。 参考にいたします。 ちなみにexistを使用しない記述の仕方ってありますか? 【条件が真 = 処理1】、【条件が偽 = 処理2】のような。 ご存知でしたらこちらも宜しくお願いいたします。
- Yeti21
- ベストアンサー率47% (396/830)
Xフォルダは共有フォルダという前提のサンプルです。 IF EXIST \\192.168.*.***\Xフォルダ\ファイルA START kakunin.bat ELSE START sakusei.bat
お礼
ありがとうございます! とても参考になりました☆