2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« バッチファイルでテキストファイルを編集する。 | トップページ | バッチファイルで文字列の長さを得る。 »

2008年2月28日 (木)

バッチ引数、FOR引数の有無を判定する。

よくあるのは、

IF "%1"=="" ECHO 引数なし

または、

IF "%~1"=="" ECHO 引数なし

ですが、 どちらも上手く行かないケースがあるので、

SET TEST=%1
IF NOT DEFINED TEST ECHO 引数なし

がお勧めです。

環境変数の部分文字列の有無(空)の判定も同様です。

IF "%AAA:~3%"=="" ECHO 空

のような判定は危険です。

SETLOCAL ENABLEDELAYEDEXPANSION
IF "!AAA:~3!"=="" ECHO 空

または、

SETLOCAL ENABLEDELAYEDEXPANSION
SET TEST=!AAA:~3!
IF NOT DEFINED TEST ECHO 空

なら安全です。

« バッチファイルでテキストファイルを編集する。 | トップページ | バッチファイルで文字列の長さを得る。 »