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

回答編集履歴

2

補足追記

2025/11/25 11:02

投稿

otn
otn

スコア86482

answer CHANGED
@@ -46,7 +46,7 @@
46
46
  ⇒ `setlocal enabledelayedexpansion`を冒頭に入れて、`"!nanana!"`と`!`で参照する。ただし、他のバッチ処理と組み合わせて使うときは`setlocal`の意味の理解が必要。
47
47
 
48
48
  案2は、BATスクリプト内に単なる文字列の`!`の文字がなくて、変数の値にも`!`が含まれ得ないときは、単純修正で済みます。`!`が使われている場合はよく考える必要あり。
49
- 案1は修正が多いですが、括弧の中身が複雑な時は括弧ほうがデバッグが楽になります。
49
+ 案1は修正が多いですが、括弧の中身が複雑な時は括弧を使わず中身を全部サブルーチンにしてCALLで呼ぶほうがデバッグが楽になります。
50
50
 
51
51
  あと、4行目と9行目は無意味なので削除しましょう。うまくいかず、試行錯誤途中で追加したのですかね?
52
52
 

1

補足追記

2025/11/25 10:57

投稿

otn
otn

スコア86482

answer CHANGED
@@ -20,7 +20,7 @@
20
20
  pause
21
21
  ```
22
22
  6行目の`(`に対応する`)`ですが、おそらく15行目行頭の`)`のつもりなのでしょう。
23
- しかし実際は、7行目以降に最初に出てきた`)`で、6行目の`(`は閉じてしまいます。
23
+ しかし実際は、7行目以降に最初に出てきた`)`で、6行目の`(`は閉じてしまいます。(`)`を二重引用符`"`で囲むなど引用(クォート)されている場合は除外)
24
24
  それは、8行目の`(y/n)`の`)`です。で、そのあとの`:`が括弧の外なのでエラー。
25
25
  `( echo ABC ):` の1行を実行してみると、同じく「: の使い方が誤っています。」というエラーになるかと思います。
26
26