[前の記事]« FORループ内でのGOTO
[次の記事]サーバ監視用スクリプト(バッチ)について »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「SET, PATH, %環境変数%」索引へ

[set /p]どんな文字が入力されても処理を続行できる方法

1327.
set /pでの値取得
2006年08月12日(土) 01時27分
ma
●DOS/Windowsのバージョン↓
WindowsXP

set /p でキー入力された値を判定し
ある特定の文字以外はエラーとしたいのですが、
どうすればよいでしょうか?

以下のソースで処理を実行したところ、
<,>,^などが入力されると処理が
終了してしまいます。
これらの文字が入力されても
問題ないようにする方法はあるのでしょうか?

set /p input
if /i %input% == y (goto 処理1) else goto エラー処理
1328.
Re:set /pでの値取得
2006年08月13日(日) 19時25分
otn
>●DOS/Windowsのバージョン↓
>WindowsXP
>
>set /p でキー入力された値を判定し
>ある特定の文字以外はエラーとしたいのですが、
>どうすればよいでしょうか?
>
>以下のソースで処理を実行したところ、
><,>,^などが入力されると処理が
>終了してしまいます。
>これらの文字が入力されても
>問題ないようにする方法はあるのでしょうか?
>
>set /p input
>if /i %input% == y (goto 処理1) else goto エラー処理

if /i "%input%" == y (goto 処理1) else goto エラー
とすれば、" が入力されない限り大丈夫というのを今まで回答してきたのですが、何が入力されても大丈夫な方法を思いつきました。

echo if /i "%%input%%" == "y" (exit 0) else exit 1 >tmp.bat
cmd /c tmp.bat >NUL 2>NUL
if %ERRORLEVEL%==0 (goto 処理1) else goto エラー

比較を子供のCMD.EXEにやらせて、文法エラー時もメインのCMD.EXEの実行が続くようにすればOK。

1330.
Re:set /pでの値取得
2006年08月14日(月) 23時57分
ma
>>●DOS/Windowsのバージョン↓
>>WindowsXP
>>
>>set /p でキー入力された値を判定し
>>ある特定の文字以外はエラーとしたいのですが、
>>どうすればよいでしょうか?
>>
>>以下のソースで処理を実行したところ、
>><,>,^などが入力されると処理が
>>終了してしまいます。
>>これらの文字が入力されても
>>問題ないようにする方法はあるのでしょうか?
>>
>>set /p input
>>if /i %input% == y (goto 処理1) else goto エラー処理
>
>if /i "%input%" == y (goto 処理1) else goto エラー
>とすれば、" が入力されない限り大丈夫というのを今まで回答してきたのですが、何が入力されても大丈夫な方法を思いつきました。
>
>echo if /i "%%input%%" == "y" (exit 0) else exit 1 >tmp.bat
>cmd /c tmp.bat >NUL 2>NUL
>if %ERRORLEVEL%==0 (goto 処理1) else goto エラー
>
>比較を子供のCMD.EXEにやらせて、文法エラー時もメインのCMD.EXEの実行が続くようにすればOK。
>

ご回答いただきありがとうございます。

子供のCMD.EXEに比較を実行させるという
方法があったんですね。

確かにこうすれば文法エラー時も処理を
継続することができると思います。

できないと思ってきたので、
助かりました。


 
 


カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2006年08月12日 02:33に投稿されたエントリーのページです。

ひとつ前の投稿は「FORループ内でのGOTO」です。

次の投稿は「サーバ監視用スクリプト(バッチ)について」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート