- ベストアンサー
バッチファイル IF 複数条件方法
- WindowsXP環境にてバッチファイルの複数条件方法について解説します。
- 具体的には、バッチファイル内で複数の条件を組み合わせて処理を行う方法について説明します。
- また、特定の条件が満たされた場合にログに記録する方法も解説します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
期待する結果が出ていないソースだけの提示ではロジックが正確に分からないのでロジックを書いてもらといいかもしれません。 例えば、A=1かつB=2で正常終了、それ以外は異常終了にしたい、コードは今はこうなっていると。変数A,Bにはこういう値が入る可能性があるとかまでわかればなおよしと思います。 上記であればこんな感じではダメ? @echo off rem --- 時間変数 --- set yyyy=%date:~-10,4% set yy=%date:~-8,2% set mm=%date:~-5,2% set dd=%date:~-2,2% rem --- ログフォルダ変数 --- set LOG_DIR1=D:\LOG rem --- ログファイル変数 --- set LOG_FILE1=LOG.txt set A=11 set B=2 IF "%A%-%B%" == "1-2" ( echo %yyyy%%mm%/%dd% %HHMMSS%正常終了 >> %LOG_DIR1%\%LOG_FILE1% ) ELSE ( echo %yyyy%%mm%/%dd% %HHMMSS%異常終了 >> %LOG_DIR1%\%LOG_FILE1% )
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
お書きのスクリプトだと、 IF %A%==1 ( IF %B%==2 ( echo 正常 ) ELSE ( echo 異常 ) ) と同じです。つまり、A が 1 でないと何も表示されません。 簡単にやるには、%1 の方がお書きのような方法がいいですね。 他にはこういう方法も。 SET OKNG=NG IF %A%==1 IF %B%==2 SET OKNG=OK IF %OKNG%==OK ( echo 正常 ) ELSE ( echo 異常 )