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

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 空

なら安全です。

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