回答編集履歴

3

誤記訂正

2020/05/10 13:21

投稿

otn
otn

スコア85901

test CHANGED
@@ -114,8 +114,6 @@
114
114
 
115
115
  ```CMD
116
116
 
117
- setlocal enabledelayedexpansion
118
-
119
117
  SET valueList=aaaaaaa,bbbbbbb,ddddddd
120
118
 
121
119
  for %%a in (%valueList%) do (

2

追記

2020/05/10 13:21

投稿

otn
otn

スコア85901

test CHANGED
@@ -101,3 +101,37 @@
101
101
  ```
102
102
 
103
103
  遅延環境変数展開を使うと、それまで普通文字だった`!`が特殊文字になるので、データの中やファイル名などで`!`を使っていると駄目です。
104
+
105
+
106
+
107
+
108
+
109
+ #追記
110
+
111
+ 今回だと、比較的影響の少ない変更としては、変数が未定義や空かどうかを調べる`if defined`を使う方法もあります。
112
+
113
+
114
+
115
+ ```CMD
116
+
117
+ setlocal enabledelayedexpansion
118
+
119
+ SET valueList=aaaaaaa,bbbbbbb,ddddddd
120
+
121
+ for %%a in (%valueList%) do (
122
+
123
+ SET existFlg=
124
+
125
+ rem ↑ = の後に空白が入らないように注意
126
+
127
+ IF EXIST test.csv SET existFlg=TRUE
128
+
129
+ IF defined existFlg (
130
+
131
+ ECHO ファイルが存在しました。
132
+
133
+ )
134
+
135
+ )
136
+
137
+ ```

1

修正

2020/05/10 12:17

投稿

otn
otn

スコア85901

test CHANGED
@@ -62,6 +62,8 @@
62
62
 
63
63
  :SUB
64
64
 
65
+ SET existFlg=FALSE
66
+
65
67
  IF EXIST test.csv SET existFlg=TRUE
66
68
 
67
69
  IF %existFlg%==TRUE (
@@ -84,6 +86,8 @@
84
86
 
85
87
  for %%a in (%valueList%) do (
86
88
 
89
+ SET existFlg=FALSE
90
+
87
91
  IF EXIST test.csv SET existFlg=TRUE
88
92
 
89
93
  IF !existFlg!==TRUE (