質問するログイン新規登録

回答編集履歴

3

誤記訂正

2020/05/10 13:21

投稿

otn
otn

スコア86389

answer CHANGED
@@ -56,7 +56,6 @@
56
56
  今回だと、比較的影響の少ない変更としては、変数が未定義や空かどうかを調べる`if defined`を使う方法もあります。
57
57
 
58
58
  ```CMD
59
- setlocal enabledelayedexpansion
60
59
  SET valueList=aaaaaaa,bbbbbbb,ddddddd
61
60
  for %%a in (%valueList%) do (
62
61
  SET existFlg=

2

追記

2020/05/10 13:21

投稿

otn
otn

スコア86389

answer CHANGED
@@ -49,4 +49,21 @@
49
49
  )
50
50
  )
51
51
  ```
52
- 遅延環境変数展開を使うと、それまで普通文字だった`!`が特殊文字になるので、データの中やファイル名などで`!`を使っていると駄目です。
52
+ 遅延環境変数展開を使うと、それまで普通文字だった`!`が特殊文字になるので、データの中やファイル名などで`!`を使っていると駄目です。
53
+
54
+
55
+ #追記
56
+ 今回だと、比較的影響の少ない変更としては、変数が未定義や空かどうかを調べる`if defined`を使う方法もあります。
57
+
58
+ ```CMD
59
+ setlocal enabledelayedexpansion
60
+ SET valueList=aaaaaaa,bbbbbbb,ddddddd
61
+ for %%a in (%valueList%) do (
62
+ SET existFlg=
63
+ rem ↑ = の後に空白が入らないように注意
64
+ IF EXIST test.csv SET existFlg=TRUE
65
+ IF defined existFlg (
66
+ ECHO ファイルが存在しました。
67
+ )
68
+ )
69
+ ```

1

修正

2020/05/10 12:17

投稿

otn
otn

スコア86389

answer CHANGED
@@ -30,6 +30,7 @@
30
30
  exit /b
31
31
 
32
32
  :SUB
33
+ SET existFlg=FALSE
33
34
  IF EXIST test.csv SET existFlg=TRUE
34
35
  IF %existFlg%==TRUE (
35
36
  ECHO ファイルが存在しました。
@@ -41,6 +42,7 @@
41
42
  setlocal enabledelayedexpansion
42
43
  SET valueList=aaaaaaa,bbbbbbb,ddddddd
43
44
  for %%a in (%valueList%) do (
45
+ SET existFlg=FALSE
44
46
  IF EXIST test.csv SET existFlg=TRUE
45
47
  IF !existFlg!==TRUE (
46
48
  ECHO ファイルが存在しました。