[前の記事]« forでの複数回コピーがすべて正常終了した場合だけメッセージを出すには
[次の記事]XCOPYで最新ファイルだけ複写するには »

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

▲カテゴリー「PAUSE,CHOICE…キー入力待ち/時間待ち」索引へ
▲カテゴリー「SET, PATH, %環境変数%」索引へ

set /pでキー入力された値の判定方法

1145.
set /pでキー入力された値の判定
2006年05月27日(土) 17時57分
初心者m
●DOS/Windowsのバージョン↓
WindowsXP

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

以下のソースで処理を実行したところ、
ENTERや"が入力されるとelseの処理が
行われず、処理が終了してしまいます。

set /p input
if /i %input% == y (goto 処理1) else goto エラー処理
1147.
Re:set /pでキー入力された値の判定
2006年05月28日(日) 09時17分
otn
>set /p でキー入力された値を判定し
>ある特定の文字以外はエラーとしたいのですが、
>どうすればよいでしょうか?
>
>以下のソースで処理を実行したところ、
>ENTERや"が入力されるとelseの処理が
>行われず、処理が終了してしまいます。
>
>set /p input
>if /i %input% == y (goto 処理1) else goto エラー処理

空Enterや"だと、if文が文法エラーになります。
if /i "%input% == "y"

if /i X%input% == Xy
だと、空Enterの時はOKですが、" が奇数個含まれていた場合は駄目です。だからまず"を削除すればいいです。

set /p input=
if defined input set input=%input:"=%
if /i "%input%" == "y" (goto 処理1) else goto エラー処理

1148.
Re:set /pでキー入力された値の判定
2006年05月28日(日) 14時51分
初心者m
>>set /p でキー入力された値を判定し
>>ある特定の文字以外はエラーとしたいのですが、
>>どうすればよいでしょうか?
>>
>>以下のソースで処理を実行したところ、
>>ENTERや"が入力されるとelseの処理が
>>行われず、処理が終了してしまいます。
>>
>>set /p input
>>if /i %input% == y (goto 処理1) else goto エラー処理
>
>空Enterや"だと、if文が文法エラーになります。
>if /i "%input% == "y"
>や
>if /i X%input% == Xy
>だと、空Enterの時はOKですが、" が奇数個含まれていた場合は駄目です。だからまず"を削除すればいいです。
>
>set /p input=
>if defined input set input=%input:"=%
>if /i "%input%" == "y" (goto 処理1) else goto エラー処理
>

otnさんご回答ありがとうございました。
空ENTERはdefinedで判定しようかと
考えていたんですが、"については
どう判定してよいかわかりませんでした。
"を削除してから比較すればよかったんですね。
とても参考になりました。


 
 


カテゴリー「PAUSE,CHOICE…キー入力待ち/時間待ち」索引へ
カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2006年05月27日 11:55に投稿されたエントリーのページです。

ひとつ前の投稿は「forでの複数回コピーがすべて正常終了した場合だけメッセージを出すには」です。

次の投稿は「XCOPYで最新ファイルだけ複写するには」です。

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

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