回答編集履歴

1

追記

2022/05/19 06:54

投稿

Zuishin
Zuishin

スコア28662

test CHANGED
@@ -1,4 +1,64 @@
1
1
  https://itsakura.com/windows-batfile
2
2
 
3
3
  上記リンク先のように、文字列ならダブルクォーテーションで囲んでみてください。
4
- 数値なら equ を使ってみてください。
4
+ ~~数値なら equ を使ってみてください。~~
5
+
6
+ ### 追記
7
+
8
+ ```bat
9
+ set aaa="1"
10
+ IF %aaa% == 1 (
11
+ ECHO バッチ処理を異常終了します。
12
+ exit /b 1
13
+ ) else (
14
+ ECHO バッチ処理を正常終了します。
15
+ exit /b 0
16
+ )
17
+ ```
18
+
19
+ aaa が文字列、比較が数値の場合
20
+ 上記コードの場合、「正常終了します」と出力されました。失敗です。
21
+
22
+ ```bat
23
+ set aaa=1
24
+ IF %aaa% == 1 (
25
+ ECHO バッチ処理を異常終了します。
26
+ exit /b 1
27
+ ) else (
28
+ ECHO バッチ処理を正常終了します。
29
+ exit /b 0
30
+ )
31
+ ```
32
+ aaa が数値、比較が数値の場合
33
+ 上記コードの場合、「異常終了します」と出力されました。成功です。
34
+
35
+ ```bat
36
+ set aaa="1"
37
+ IF %aaa% == "1" (
38
+ ECHO バッチ処理を異常終了します。
39
+ exit /b 1
40
+ ) else (
41
+ ECHO バッチ処理を正常終了します。
42
+ exit /b 0
43
+ )
44
+ ```
45
+
46
+ 両方とも文字列の場合
47
+ 「異常終了します」と出力されました。成功です。
48
+
49
+ ```bat
50
+ set aaa=1
51
+ IF %aaa% == 2 (
52
+ ECHO バッチ処理を異常終了します。
53
+ exit /b 1
54
+ ) else (
55
+ ECHO バッチ処理を正常終了します。
56
+ exit /b 0
57
+ )
58
+ ```
59
+
60
+ 両方数値だが値が違う場合
61
+ 「正常終了します」と出力されました。
62
+
63
+ 以上のように確認してみたところ、数値の場合も equ ではなく、== で問題ないはずです。
64
+ **まず equ に入っているのが文字列か数値かを確認し、それに合わせて比較してください。**