DOSコマンド IFについて
◇-?DOSコマンド IFについて-肝さん-09/01-12:42(321)-No.482932 ┣?!Re:DOSコマンド IFについて...-ヒロ-09/01-13:20(321)-No.482933 ┗?!Re:DOSコマンド IFについて...-pandora-09/01-13:40(320)-No.482934
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
482932 | DOSコマンド IFについて | 肝さん | 2009/09/01-12:42 |
メーカー名:富士通 OS名:WindowsXp Professional パソコン名:FMV-C8250 -- お世話になります。質問させて下さい。 DOSコマンドのIFを使用して、下記のような動作をさせているのですが、 SETに意図しない数値を設定した場合のエラー処理方法について、ヒントをいた だけませんでしょうか? 現在の内容 SET INSTDIR=1 ・・・設置場所によって、この数値を変更します。 if %INSTDIR%==0 GOTO :INST_EXE1 if %INSTDIR%==1 GOTO :INST_EXE2 if %INSTDIR%==2 GOTO :INST_EXE3 if %INSTDIR%==3 GOTO :INST_EXE4 if %INSTDIR%==4 GOTO :INST_EXE5 :INST_EXE1 〜処理内容〜 :INST_EXE2 〜処理内容〜 :INST_EXE3 〜処理内容〜 以下省略 よろしくお願い致します。 |
▲このページのトップに戻る
482933 | Re:DOSコマンド IFについて | ヒロ | 2009/09/01-13:20 |
記事番号482932へのコメント 肝さんさんは No.482932「DOSコマンド IFについて」で書きました。 1)エラー処理をgotoで飛ばす場合のパターン SET INSTDIR=1 ・・・設置場所によって、この数値を変更します。 if %INSTDIR%==0 GOTO INST_EXE1 if %INSTDIR%==1 GOTO INST_EXE2 if %INSTDIR%==2 GOTO INST_EXE3 if %INSTDIR%==3 GOTO INST_EXE4 if %INSTDIR%==4 GOTO INST_EXE5 goto ERR :INST_EXE1 〜処理内容〜 goto END :INST_EXE2 〜処理内容〜 goto END :INST_EXE3 〜処理内容〜 goto END :ERR エラー処理 :END 終了処理 2)IF文に該当しない場合は直接エラー処理を記述して後はENDへ飛ばす SET INSTDIR=1 ・・・設置場所によって、この数値を変更します。 if %INSTDIR%==0 GOTO INST_EXE1 if %INSTDIR%==1 GOTO INST_EXE2 if %INSTDIR%==2 GOTO INST_EXE3 if %INSTDIR%==3 GOTO INST_EXE4 if %INSTDIR%==4 GOTO INST_EXE5 エラー処理(INSTDIRが0〜4以外の場合) goto END :INST_EXE1 〜処理内容〜 goto END :INST_EXE2 〜処理内容〜 goto END :INST_EXE3 〜処理内容〜 goto END :END 終了処理 にするとか |
▲このページのトップに戻る
482934 | Re:DOSコマンド IFについて | pandora | 2009/09/01-13:40 |
記事番号482932へのコメント 肝さんさんは No.482932「DOSコマンド IFについて」で書きました。 すでに、回答がされてますが たとえば、C言語等の高級言語でよく利用する、 ・関数アドレス登録テーブルのインデックス参照で分岐先を選択する とかいった方法はできません DOSバッチはそこまで頭が良くないので 回答にあるように、IF文を羅列して当該処理に分岐させるしかないです (いずれのIF文にも該当しない場合、エラー) ちなみに、 数値変数に数値以外のものが含まれないか、こんな方法で確認します SET TEMPSTR= IF DEFINED INSTDIR SET TEMPSTR=%INSTDIR:0=% IF DEFINED TEMPSTR SET TEMPSTR=%TEMPSTR:1=% IF DEFINED TEMPSTR SET TEMPSTR=%TEMPSTR:2=% IF DEFINED TEMPSTR SET TEMPSTR=%TEMPSTR:3=% IF DEFINED TEMPSTR SET TEMPSTR=%TEMPSTR:4=% IF DEFINED TEMPSTR SET TEMPSTR=%TEMPSTR:5=% IF DEFINED TEMPSTR SET TEMPSTR=%TEMPSTR:6=% IF DEFINED TEMPSTR SET TEMPSTR=%TEMPSTR:7=% IF DEFINED TEMPSTR SET TEMPSTR=%TEMPSTR:8=% IF DEFINED TEMPSTR SET TEMPSTR=%TEMPSTR:9=% IF DEFINED TEMPSTR GOTO エラー処理 ただし 場合によっては、「遅延環境変数の展開」による変数参照をしないとうまく動作しないときがあります |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|