batを書いている時に、変数に中身があるかチェックする処理を入れたい時がある。今回はそれの解決策を提案。
結論:初期値をシャープ”#”等、到底使わなさそうな文字を入れておく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
@echo off REM this is CMD sourcecode REM 変数を初期化する 初期値は# set TEST_VARIABRE = # REM ##############なんらかの処理############## REM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ REM ##############なんらかの処理############## REM 変数TEST_VARIABREの中身が変更されているかチェック if %TEST_VARIABRE% == "#" ( echo 変数TEST_VARIABREの中身は空です ) else ( echo 変数TEST_VARIABREの中身は%TEST_VARIABRE%です ) |
解消される点: 変数を標準出力させてもnullなのか空白なのかわからない。 →判断できるようになる。
考慮が必要な点:”#” を入力値に持ちうるバッチの場合、このコードでは”#”が未入力として処理されるので良くない。”var is null”みたいな値が良いかもしれない。 → お好みの初期値をどうぞ