2014.
10.
26
23:03:23
結論から書けば、先頭にラベルを貼って、そこにgotoするだけです。
あとは、実行確認のメッセージとかを出して、一時的に処理を止めてください。
それでバッチファイルを繰り返し実行できるようになります。
例えば、こんな感じのコードですねφ(--)
無限ループしないようにご注意くださいね(-∀-)
その他の注意点としては、変数の初期化を忘れないようにしてください。
繰り返し処理なので、前回の値が残っています。
例えば、サンプルでは
のように、わざわざ
を付けています。
これが無いと、前回指定した値が残っちゃうのですね。
2回目以降、何も入力しないでEnterキーを押すと、
変数「pushKey」に前回入力した「y」が入った状態で処理が進みます。
このように微妙に注意しないといけない点はありますが、
パラメータを変えて何回も実行するようなバッチファイルの場合は、
組み込んでおいても良いと思いますよ。
例えば
Windows、バッチファイル(.bat)でファイルやフォルダの存在チェックを行う。
の記事で書いたファイルの存在チェックを行うバッチファイルと合体させれば、
飽きるまでファイルの存在チェックができるようになりますφ(--)
サンプルがあまり実用的でないのは、勘弁してください(´・ω・`)
良い例が思い浮かばなかったのです。
取りあえず、バッチファイル(.bat)の繰り返し実行、完了\(--)/
あとは、実行確認のメッセージとかを出して、一時的に処理を止めてください。
それでバッチファイルを繰り返し実行できるようになります。
例えば、こんな感じのコードですねφ(--)
@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
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 /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
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)の繰り返し実行、完了\(--)/