
WindowsXP環境にて下記のバッチファイルがあります。
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=1
set B=2
IF %A% == 1 IF %B% == 2 (
echo %yyyy%%mm%/%dd% %HHMMSS%正常終了 >> %LOG_DIR1%\%LOG_FILE1%
) ELSE (echo %yyyy%%mm%/%dd% %HHMMSS%異常終了 >> %LOG_DIR1%\%LOG_FILE1%)
pause
上記プログラムだとログ上で【200912/10 正常終了】と表示されるのに、【set A=10】と変更して
【200912/10 異常終了】の表示がログ上に出力されるだろうと期待して実行した結果、
何も表示されてませんでした。
どこに問題があるのでしょうか?
No.1ベストアンサー
- 回答日時:
期待する結果が出ていないソースだけの提示ではロジックが正確に分からないのでロジックを書いてもらといいかもしれません。
例えば、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%
)
No.2
- 回答日時:
お書きのスクリプトだと、
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 異常
)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Access(アクセス) エクセルのVBAについて教えてください。 4 2023/01/21 10:21
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチでテキストファイルから...
-
MSDOSバッチコマンド for-do
-
バッチファイルで昨日の日付を取得
-
子バッチ内のキー入力処理へ自...
-
DOSのバッチで、変数中のファイ...
-
コマンドプロンプト画面の閉じ...
-
バッチファイルで2つ以上の変...
-
バッチファイルでDirで取得した...
-
バッチファイルで常に最新の現...
-
C#でメジャーなバッチフレーム...
-
バッチファイル ファイル内で改...
-
VBアプリケーションで終了コー...
-
バッチファイルでの環境変数の...
-
コマンドプロンプトで2ヶ月前3...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
隠しファイルの扱い
-
アクセス 壊れた? 「ファイ...
-
binファイルを解凍したいの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチでテキストファイルから...
-
バッチファイルで昨日の日付を取得
-
子バッチ内のキー入力処理へ自...
-
バッチファイルでDirで取得した...
-
コマンドプロンプト標準出力と...
-
バッチファイルで常に最新の現...
-
DOSのバッチで、変数中のファイ...
-
VBアプリケーションで終了コー...
-
コマンドプロンプトで2ヶ月前3...
-
IPアドレスの第3オクテットだ...
-
コマンドプロンプト画面の閉じ...
-
コマンドプロンプト(バッチファ...
-
絶対パス名からファイル名を取...
-
バッチファイル テキストファイ...
-
Excelで住所録を地域ごとに振り...
-
コマンドプロンプトでファイル...
-
コマンドプロンプト(バッチ)...
-
batの変数を直接vbsのプログラ...
-
echoとsystem関数について
-
呼び出し元バッチを知るには?
おすすめ情報