正常に完了するコマンドを実行すればOK
rem ★エラーを起こす
rem エラーを起こすために存在しないフォルダを指定 cd c:\not_exists_folder rem エラーレベルを確認すると1になっている echo %errorlevel%
rem ★エラーをクリアする rem エラーレベルをクリアするために成功するはずのコマンドを実行する(結果はいらないので>nulで捨てる) cd > nul rem エラーレベルを確認すると0になっている echo %errorlevel%
動作可能なバッチのサンプルが中々ないため作成。
このテンプレートをもとに目的のコマンド呼び出しを追加すれば、作業が捗る・・・かも。
@echo off setlocal rem ************************************************** rem Windowsバッチファイルテンプレート v1.01 2017/08/23 rem https://juraku-software.net/ rem ★印のブロックを書き換えて使ってください rem rem このテンプレートの仕様>> rem バッチファイルの保存フォルダの下にLogフォルダを作成し、そこに日付のログファイルを作成する。 rem エラー処理のテンプレも兼ねて故意に誤ったパラメータを指定してPingコマンドを実行している。 rem ************************************************** rem ■ログファイル名取得(現在時刻) set TIME2=%time: =0% set NOW_DATE=%date:~0,4%%date:~5,2%%date:~8,2%_%TIME2:~0,2%%TIME2:~3,2%%TIME2:~6,2% set LOG_NAME=Log\%NOW_DATE%.log rem ■カレントディレクトリ変更 cd /d %~dp0 rem ■ログ作成 if not exist Log\ ( mkdir Log ) echo バッチ起動 %date% %time% > %LOG_NAME% rem ■目的のコマンド★ echo コマンド開始 >> %LOG_NAME% rem エラーを起こすために適当なパラメータを指定 ping -aaa >> %LOG_NAME% 2>&1 rem ■エラー判定 if %errorlevel% == 0 ( rem エラー無し echo コマンド実行成功 戻り値:%errorlevel% >> %LOG_NAME% endlocal exit /b 0 ) else ( rem エラー有り echo コマンド実行失敗 戻り値:%errorlevel% >> %LOG_NAME% endlocal exit /b %errorlevel% ) rem ■終了
変更履歴
2017/08/23 setlocal~endlocalの記載追加