2011年11月4日金曜日

DOS コマンドで変数に入力させるよ

仕事の都合で、最近よく DOS コマンドでバッチ処理の仕掛けを作成しています。
バッチ実行時、入力した変数で処理を振り分ける仕掛けを作成したので、覚書として載せておきます。
:START
@SET /P INPUTPARAM=入力して 
@if "%INPUTPARAM%"=="" @goto START

@if %INPUTPARAM:~0,1%==1 @goto SYORI01
@if %INPUTPARAM:~0,1%==2 @goto SYORI02
@goto OTHER

:SYORI01
@echo 処理1
@goto END

:SYORI02
@echo 処理2
@goto END

:OTHER
@echo 対象外

:END
@pause

2行目の SET /P で入力を促して、入力された値を INPUTPARAM にセットしています。
います。
3行目の if "%INPUTPARAM"=="" で何も入力されていないか判定し、そうであるなら、1行目のSTARTラベルに戻しています。
5, 6行目は入力された1桁目を判定条件として、1, 2のときSYORI01, SYORI02のラベルに飛ばしています。
あとはまあ、見てのとおりと言うことで。

個人的に苦労したのは、2行目の何も入力されていないかを判定するところで、変数をダブルクォートで囲むことになかなか気がつきませんでした。

実行結果
入力して
入力して 2
処理2
続行するには何かキーを押してください . . .
   
入力してが1, 2行目に出ているのは、1行目で何も入力せずにエンターを押しているからです。

0 件のコメント :

コメントを投稿