• ベストアンサー

【条件分岐】教えてください【バッチファイル】

●条件  ・\\192.168.*.***のXフォルダにあるファイルAが存在する場合、   kakunin.batを実行する。  ・\\192.168.*.***のXフォルダにファイルAが存在しない場合、   sakusei.batを実行する。 ※kakunin.batとsakusei.batは作成済み。 上記の条件でバッチファイルを作成したいのですが、 記述の仕方などがいまいちよくわかりません。 ご存知の方おられましたら、お教え願いたいと存じます。 宜しくお願いいたします。

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

  • ベストアンサー
  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.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

sartan
質問者

お礼

ありがとうございます! とても参考になりました☆

その他の回答 (5)

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.5

では、入力値による判定のサンプルです。 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)
回答No.4

CALLで存在チェックという意味でしょうか? 拡張機能で何かあるのかもしれませんがちょっとどういうものかわかりません。 ちなみに、サンプルの「START」は「CALL」でも良いです。 STARTは色々なものを起動しますが、バッチファイルの起動なら逆に CALLの方が専門です。

sartan
質問者

補足

記述してみたところ、「call」の方でうまくいきました。 しかし、新たに条件などが加わって やはり別の記述にしなければならなくなりました。 (【文字列1==文字列2】というような記述をしたいみたいです。) (1)・・・\\192.168.*.***のXフォルダのファイルAにデータを移行したか問いかける  ⇒ 移行済みんの場合:1、移行していない場合:2を押下 (2)・・・1のとき、kakunin.batを実行する     2のとき、iko.batを実行し、その後、kakunin.batを実行する 上記の場合はどのように作成すればよろしいでしょうか? 宜しくお願いいたします。

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.3

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

sartan
質問者

補足

なるほど。 ファイルの存在チェックには“exist”を使用するということなのですね? 【if 文字列 == 文字列】という記述で表示し、 callを用いて実行する方法がある、というようなことを聞いたのですが、 このやり方ではなくexistを使ってYeti21さんのように記述すればよろしいのですね! ありがとうございます。

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.2

ちょっと訂正です。 IF EXIST \\192.168.*.***\Xフォルダ\ファイルA (START kakunin.bat) ELSE (START sakusei.bat)

sartan
質問者

補足

ありがとうございます。 参考にいたします。 ちなみにexistを使用しない記述の仕方ってありますか? 【条件が真 = 処理1】、【条件が偽 = 処理2】のような。 ご存知でしたらこちらも宜しくお願いいたします。

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

Xフォルダは共有フォルダという前提のサンプルです。 IF EXIST \\192.168.*.***\Xフォルダ\ファイルA START kakunin.bat ELSE START sakusei.bat

関連するQ&A

  • 1つ下のファイルをコピーするバッチファイル

    コマンドプロンプトで実行するバッチファイル(x.bat)で C:\Aというフォルダのさらに1つ下のフォルダ (このフォルダは1つのみで名前は毎回変化します) の中にあるc.mpgというファイルを D:\Bフォルダにコピーするバッチファイルを 作りたいのですがどのように記述すればよいのでしょうか。 例えば、C:\A\data_20120922195626というフォルダ (data_20120922195626というフォルダ名は任意の名前ですが C:\Aフォルダの中にはこのフォルダ1つしかありません) の中に\c.mpgというファイルがあるとします。 バッチファイル x.bat を実行すると D:\Bフォルダにc.mpgをコピーしたいのです。 なお、data_20120922195626というフォルダの名前は バッチファイルを実行する時には毎回異っていますが バッチファイル実行中は変化しません。 VBscriptやwshなどは使わずWindosXPの標準DOS機能のみで お願いします。(WindosXP SP3)

  • バッチファイルについて

    @cmd /k 上記の内容で「a.bat」というファイル名で保存しました。 この保存したファイルをダブルクリックすると、バッチファイルが格納されてるフォルダのパスがコマンドプロンプト上に表示されます。 パス表示後に、いろいろな動作(「echo~」など)を実行したいと思っているんですが、うまくいきません。 どうやら一番上の「@~」を記述したものは、そのあとに「echo~」などを記述しても実行してくれないみたいです。 「@cmd /k」実行後に何か(「echo~」など)を実行するにはどうしたらいいですか?

  • バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。

    バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。 バッチファイルでほかのバッチファイルを呼び出した後の処理で困っています。 どうぞ教えてください。 「A.bat」というバッチファイルを実行すると、「1.bat」というバッチファイルを 実行させ、「1.bat」の実行結果によって、処理を分岐させたいと考えています。 「1.bat」をcallで呼び出し、実行はできたのですが、「1.bat」は最後にエンタキーを 押さないと終了しないようになっています。そのため、「エンターキーを押して終了させて ください」というメッセージが出たままの画面で終わってしまい、「A.bat」に帰ってくることが できません。 「1.bat」は中身を扱えないようにしてあるバッチファイルなので、こちらでエンターキーを 押さずに終了させるようにはできません。何かいい方法はないでしょうか?

  • バッチファイルの作成

    お世話になっております。 バッチファイルの作成方法について、只今勉強中です。 現在、毎日行われている作業をバッチファイルで自動化が出来ないか検討しておりますが、バッチファイルの編集に苦戦していて困っております・・・ ---実行したい事--- 0.以下、作業の流れをコマンドプロンプト上で表示する。 1.C:\ツール\batというフォルダに移動する。 2.batフォルダに新しく「file」というフォルダを作成 3.batフォルダ内には「bat_YYYY/MM/DD.txt」という日付のテキストがあり、該当する日付のテキストをコピーしてfileフォルダへ貼り付ける。 4.fileフォルダへ移動する。 ---終了--- 手順を全部書いてしまっているのですが、途中まではバッチファイルの編集をする事が出来ました。しかし、正解しているか不安です。 ご教授の程、宜しく御願い致します。

  • 条件分岐のバッチファイル

    「D&Dした複数ファイルを、そのファイル名と同名のフォルダ(既に作成済み)の中にある、Aというフォルダに移動する。」という動作をするバッチファイルを、以前の質問などを参考にしながらわからないなりに作ってみました。 :LOOP if %1 == "" GOTO XEND move %1 "C:\Documents and Settings\(ユーザー名)\デスクトップ\%~n1\A" SHIFT GOTO LOOP :XEND PAUSE これで動作したのですが、これにさらに 「ファイルの拡張子がjpgならフォルダAへ、bmpならフォルダBへ、  pngかつファイルサイズが2MB以下ならばフォルダCへ、それ以上ならフォルダDへ移動」 という動作を追加したいです。結構複雑なのですが、これはバッチファイルで可能なのでしょうか? 長文の上、わかりにくくてすいません。 可能ならば、どなたか教えていただけないでしょうか。よろしくお願いします。

  • windowsのバッチ作成

    windowsのバッチ初心者です。 以下、バッチの作成を検討してます。 (1)c:\配下に毎日1回作成される、A.pdfというファイルを、 今日の更新日付分が作成されているか監視する。 (2)もし、存在していれば、A.batを実行する (3)もし、存在していなければ、B.batを実行する 簡単なものでお手数おかけしますが、 ご教授いただけると幸いです。

  • WindowsNT,Windows2000のバッチファイル

    おしえてください。 WindowsNT,Windows2000で作成するバッチファイルの拡張子は 「.bat」、「.cmd」のどちらがベターですか? WindowsNT,Windows2000でバッチファイルを作成して 実行したいのですが、そのバッチファイルの拡張子として (1)「.bat」、(2)「.cmd」の2種類で実行可能と認識しています。 私は (1)「.bat」は「command.com」、(2)「.cmd」は「cmd.exe」より動作すると 思っています。 よって(1)「.bat」だと16ビットで動作するため、何たかの不具合がでないのかなと懸念しています。 (1)「.bat」、(2)「.cmd」どちらでもいいのなら現在つくっている (1)「.bat」でいきたいのですが・・・。 どうかご回答お願いします。

  • 98SE、バッチファイルのショートカットについて

    Windows98 SEで、 バッチファイル(.bat)を作成後実行すると、何やら、そのバッチファイルへのショートカットが作成されてしまいます。 このショートカットが作られないようにはできないのでしょうか? よろしくお願いします。

  • バッチファイルについて

    ファイルの中身を抽出するバッチを作成しました。 そのバッチファイルを実行し、test.csvというファイル名をつけて出力できたんですが、出力パスも指定することは可能なんでしょうか? find.bat > test.csv

  • IEで接続したサーバ内のバッチファイルを実行したい

    IIS8で仮想ディレクトリを作り、そのディレクトリの参照を有効にする設定にしました。 クライアントからIEでディレクトリの一覧を見ることができるようなったので、そのディレクトリの中のバッチファイルを実行することで、クライアントのPCに、あるソフトが入るようにしたいです。 仮想ディレクトリ(フォルダ名を「A」とします)のフォルダの構成は、フォルダ「A」の直下にあるフォルダ「B」の中に「123.exe」、フォルダ「A」の直下にあるフォルダ「C」に「環境設定.aen」、フォルダ「A」の直下にあるフォルダ「D」には「123.bat」が入っています。 「123.bat」は、「123.exe」を実行した後、PCを再起動させるバッチファイルです。 「環境設定.aen」は、「123.exe」を実行してインストールされるソフトの環境設定のファイルです。 フォルダ「A」 |-フォルダ「B」 | |-123.exe | |-フォルダ「C」 |   |-環境設定.aen | |-フォルダ「D」 |   |-123.bat サーバーは、Windows Server 2012 です。 現在、123.batを実行しようとすると、「404-ファイルまたはディレクトリが見つかりません。」とエラーが出ます。バッチファイルではなく、直接「123.exe」を実行すると、ファイルのダウンロードが始まり、困っています。 質問したいのは、そもそもIEで接続したサーバーのフォルダ内のバッチファイルやexeファイルを実行して、クライアントのPCにソフトをインストールすることはできるのでしょうか? もし、できるのでしたら、方法は問いませんので、こういうやり方があるよというのを教えていただけないでしょうか? よろしくお願いいたします。