[前の記事]« バッチファイル内でクリップボードから文字列を取り出す
[次の記事]4台のPC中1台だけでバッチファイルがバッチファイルとして認識されない »

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

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

SET /Pの入力文字列から特殊文字の有無をチェックするには

1629.
特殊文字とワイルドカードを使用した条件分岐について
2007年01月26日(金) 16時54分
liq◆J/R9GmA=
いつもバッチを作成する際には重宝させていただいております。
初心者の質問で申し訳ないのですが、条件分岐の処理でお聞きしたく、書き込ませていただきました
OSはWindowsXPになります。
質問は下記バッチの動作についてです。

----------
set /P VAR3=
for %%H in (*|*) do if %%H=="%VAR3%" GOTO FUKUMU
for %%H in (*<*) do if %%H=="%VAR3%" GOTO FUKUMU
for %%H in (*>*) do if %%H=="%VAR3%" GOTO FUKUMU

echo 「|」「<」「>」のいずれも文字列には含まれていません。
GOTO QUIT

:FUKUMU
echo 「|」「<」「>」のいずれかが文字列に含まれています。

:QUIT
echo end
----------

期待したい動作は下記になります。

「set /P」にて入力した値の中に「|」「<」「>」が一文字でも含まれる場合(たとえば「a|a|a」や「<ab>」など)には「FUKUMU」にジャンプさせる。

という動作です。
ただ「for」の部分で「*」を使用するとbatファイルのあるカレントディレクトリのファイル名を走査してしまうようでうまくいかない状態です。
なんとか期待した動作は出来ないものでしょうか。

標準コマンドでこのような条件分岐を行うことが難しいのであれば言っていただければと思います。
何かちょっとしたヒントでもいいですのでいただけると幸いであります。

以上、宜しくお願いいたします。
1630.
Re:特殊文字とワイルドカードを使用した条件分岐について
2007年01月26日(金) 17時55分
じゃく
こんにちは。

>期待したい動作は下記になります。
>
>「set /P」にて入力した値の中に「|」「<」「>」が一文字でも含まれる場合(たとえば「a|a|a」や「<ab>」など)には「FUKUMU」にジャンプさせる。
>
>という動作です。

find コマンドを使う例です。

set /P VAR3=
set VAR3|find "|"
if %ERRORLEVEL% EQU 0 goto FUKUMU
set VAR3|find "<"
if %ERRORLEVEL% EQU 0 goto FUKUMU
set VAR3|find ">"
if %ERRORLEVEL% EQU 0 goto FUKUMU

echo 「|」「<」「>」のいずれも文字列には含まれていません。
GOTO QUIT

:FUKUMU
echo 「|」「<」「>」のいずれかが文字列に含まれています。

:QUIT
echo end
----------

1638.
Re:特殊文字とワイルドカードを使用した条件分岐について
2007年01月29日(月) 15時10分
liq◆J/R9GmA=
すぐにご返事いただいたようでありがとうございます。
また、返信が遅くなりましてすいません。

>find コマンドを使う例です。
>
>set /P VAR3=
>set VAR3|find "|"
>if %ERRORLEVEL% EQU 0 goto FUKUMU
>set VAR3|find "<"
>if %ERRORLEVEL% EQU 0 goto FUKUMU
>set VAR3|find ">"
>if %ERRORLEVEL% EQU 0 goto FUKUMU
>
>echo 「|」「<」「>」のいずれも文字列には含まれていません。
>GOTO QUIT
>
>:FUKUMU
>echo 「|」「<」「>」のいずれかが文字列に含まれています。
>
>:QUIT
>echo end
>----------
>

なるほど!
findとERRORLEVELを使用するとはまるで考えてませんでした。
これでバッチもうまく行きます。
ありがとうございました。
今度質問するときにはもっと調べてからにしたいと思います。
 
 


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

 




カテゴリー一覧

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


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

資料書籍

About

2007年01月26日 14:13に投稿されたエントリーのページです。

ひとつ前の投稿は「バッチファイル内でクリップボードから文字列を取り出す」です。

次の投稿は「4台のPC中1台だけでバッチファイルがバッチファイルとして認識されない」です。

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

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