@echo off if "%1" == "" (echo コマンド番号を指定して下さい & goto end) if "%1" == "0" (echo 番号は1以上です & goto end) call :ErrorCheck %1 %~dp0_list.bat 2> null if "%ERRORLEVEL%" == "1" (goto end) for /F "delims= skip=%1" %%i in (%~dp0_list.bat) do ( %%i goto end ) REM サブルーチン用エリアを作る為の JUMP goto end REM ループ処理の事前エラーチェック :ErrorCheck call :setErrorLevel 1 for /F "skip=%1" %%i in (%2) do (call :setErrorLevel 0) if "%ERRORLEVEL%" == "1" (echo パラメータが不正です) exit /B REM errorlevel 設定用 :setErrorLevel exit /B %1 REM 終了 :end
ERRORLEVEL を判断用に使う為に( 汎用性のため ) setErrorLevel というサブルーチンを作成しています。 FOR のパラメータに不正があると、do を実行しないので、 ERRORLEVEL が設定されたかどうかでエラーを判断します。 FOR が出力する標準エラー出力は直接取得できないので、 サブルーチン化して FOR の出力するエラーメッセージを抑制しています 関連する記事 バッチファイルで、ファイルの中の行を指定してその行の文字列を実行する
タグ:バッチファイル
|
【コマンド : バッチファイルの最新記事】
- バッチファイル内で、実行中のファイルと引数のファイルを扱う特殊変数
- バッチファイル(コマンドプロンプト)で使用できる特殊な3つの環境変数
- バッチファイル内で、コマンドプロンプトが管理者権限で実行されているかのチェック
- デスクトップのアイコン表示を切り替えるバッチファイル
- バッチファイルで、二つのファイルが同じファイルかどうかチェックして if errorlevel で処理を分岐する
- バッチファイル内の Call コマンドによるサブルーチンの呼び出し( errorlevel を戻して if で判断する )
- あらかじめ指定しておいたフォルダの中を探して Excel のドキュメントを開くバッチファイル
- バッチファイル自身をフルパスで展開する変数 : %~f0
- バッチファイル : ファイル順のシャッフル
- コマンドプロンプト : 指定回数だけループ処理を行うバッチファイル
- SET /P : バッチファイルで入力した値を環境変数に設定して使用する
- バッチファイル : コマンドプロンプトの表示幅の変更
- バッチファイル : VS9.0のMicrosoft純正バッチ処理 : For /F : バッチファイルでレジストリの値を判断材料にする
- コマンドプロンプト : バッチファイルで使う for コマンドの変数展開のテスト( vtest.bat )
- バッチファイルで、ファイルの中の行を指定してその行の文字列を実行する