【Windows Bat】エラーレベルをクリアする

正常に完了するコマンドを実行すればOK

rem ★エラーを起こす
rem エラーを起こすために存在しないフォルダを指定 cd c:\not_exists_folder rem エラーレベルを確認すると1になっている echo %errorlevel%
rem ★エラーをクリアする rem エラーレベルをクリアするために成功するはずのコマンドを実行する(結果はいらないので>nulで捨てる) cd > nul rem エラーレベルを確認すると0になっている echo %errorlevel%

 

【Windows Bat】バッチファイル(*.bat)テンプレート

動作可能なバッチのサンプルが中々ないため作成。

このテンプレートをもとに目的のコマンド呼び出しを追加すれば、作業が捗る・・・かも。

@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の記載追加