コマンドプロントの拡張機能である、ラベルによる呼び出しは、デフォルトで有効になっていますCALL :ラベル 引数以下に引数と errorlevel を使用したサンプルを示します
@echo off REM **************************************** REM コマンドの先頭の @ は、そのコマンドの表示を抑制 REM echo off は以降のコマンドの表示を抑制 REM **************************************** REM **************************************** REM サブルーチンの呼び出し REM **************************************** call :GetDay 09 if errorlevel 1 ( echo 現在の月は引数と一致しました & date /T ) else ( echo 現在は引数以外の月です & date /T ) REM **************************************** REM 処理の終わり REM **************************************** goto end REM **************************************** REM サブルーチン REM date /t で 2009/08/16 というような表示を / で区切り REM 2番目の 08 を %%i へセットする REM **************************************** :GetDay @for /F "delims=/ tokens=2" %%i in ('date /t') do ( REM 現在が引数と一致する場合 if "%%i"=="%1" ( REM サブルーチンからの脱出と同時に errorlevel のセット exit /B 1 ) ) REM 一致しなかった場合のサブルーチンからの脱出 exit /B 0 REM **************************************** REM 記述の終わり REM **************************************** :end REM **************************************** REM 【補足】 REM REM date /t の /t と call :ラベルは何れもデフォルトで有効な REM コマンド拡張機能 です。 REM ****************************************
要点 :GetDay にジャンプして、exit コマンドで元へ戻ります。 exit /B で cmd.exe を終了するのでは無く制御を call の呼び出し元へ移します exit /B 数値 によって、結果を戻り値として返します if や else の結果で複数コマンドを実行したい場合は & でつなげます。 ( if文は キーワードが行の先頭になければ複数行で記述できますが、コマンドは & でつなげる場合1行で記述する必要があります ) 関連する記事
タグ:バッチファイル
|
【コマンド : バッチファイルの最新記事】
- バッチファイル内で、実行中のファイルと引数のファイルを扱う特殊変数
- バッチファイル(コマンドプロンプト)で使用できる特殊な3つの環境変数
- バッチファイル内で、コマンドプロンプトが管理者権限で実行されているかのチェック
- デスクトップのアイコン表示を切り替えるバッチファイル
- バッチファイルで、二つのファイルが同じファイルかどうかチェックして if errorlevel で処理を分岐する
- あらかじめ指定しておいたフォルダの中を探して Excel のドキュメントを開くバッチファイル
- バッチファイル自身をフルパスで展開する変数 : %~f0
- バッチファイル : ファイル順のシャッフル
- コマンドプロンプト : 指定回数だけループ処理を行うバッチファイル
- SET /P : バッチファイルで入力した値を環境変数に設定して使用する
- バッチファイル : コマンドプロンプトの表示幅の変更
- バッチファイル : VS9.0のMicrosoft純正バッチ処理 : For /F : バッチファイルでレジストリの値を判断材料にする
- コマンドプロンプト : バッチファイルで使う for コマンドの変数展開のテスト( vtest.bat )
- バッチファイルで、FOR に渡すパラメータの妥当性チェックを行う
- バッチファイルで、ファイルの中の行を指定してその行の文字列を実行する