プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Windows、バッチファイル(.bat)の繰り返し実行を可能にする
結論から書けば、先頭にラベルを貼って、そこにgotoするだけです。
あとは、実行確認のメッセージとかを出して、一時的に処理を止めてください。
それでバッチファイルを繰り返し実行できるようになります。

例えば、こんな感じのコードですねφ(--)

@echo off

REM 先頭ラベル
:label_start

REM 処理実行確認
SET pushKey=""
SET /P pushKey=実行しますか(y/n)?:


IF "%pushKey%" == "y" (
REM OK
) ELSE IF "%pushKey%"=="Y" (
REM OK
) ELSE (
goto label_end
)

REM 処理実行
echo 何かの処理

REM 先頭ラベルへ移動
goto label_start

REM 終了ラベル
:label_end
pause
exit

無限ループしないようにご注意くださいね(-∀-)
その他の注意点としては、変数の初期化を忘れないようにしてください。
繰り返し処理なので、前回の値が残っています。
例えば、サンプルでは

SET pushKey=""
SET /P pushKey=実行しますか(y/n)?:

のように、わざわざ

SET pushKey=""

を付けています。

これが無いと、前回指定した値が残っちゃうのですね。
2回目以降、何も入力しないでEnterキーを押すと、
変数「pushKey」に前回入力した「y」が入った状態で処理が進みます。

このように微妙に注意しないといけない点はありますが、
パラメータを変えて何回も実行するようなバッチファイルの場合は、
組み込んでおいても良いと思いますよ。

例えば

Windows、バッチファイル(.bat)でファイルやフォルダの存在チェックを行う。

の記事で書いたファイルの存在チェックを行うバッチファイルと合体させれば、
飽きるまでファイルの存在チェックができるようになりますφ(--)

@echo off

REM 先頭ラベル
:label_start

REM 処理実行確認
SET pushKey=""
SET /P pushKey=実行しますか(y/n)?:

IF "%pushKey%" == "y" (
echo OK
) ELSE IF "%pushKey%"=="Y" (
echo OK2
) ELSE (
goto label_end
)


REM チェック対象ファイル・フォルダ指定
set /P fileName=ファイルを指定してください:

REM ファイル・フォルダ存在チェック
IF "%fileName%" == "" (
echo ファイルを指定しろよ
goto label_error
) ELSE IF NOT EXIST "%fileName%" (
echo そんなファイル無いよ
goto label_error
) ELSE (
echo OK
)

REM ファイル・フォルダ判定
IF EXIST "%fileName%\" (
echo フォルダだよ
) ELSE (
echo ファイルだよ
)

REM 先頭へ移動
goto label_start


REM エラー処理
:label_error
echo エラー
goto label_start

REM 終了処理
:label_end
pause
exit

サンプルがあまり実用的でないのは、勘弁してください(´・ω・`)
良い例が思い浮かばなかったのです。

取りあえず、バッチファイル(.bat)の繰り返し実行、完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:コマンド/バッチ  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事