1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

(解決?)バッチで良くわからないエラーに悩まされてます。

Last updated at Posted at 2023-06-27

分かる方いたら、教えてください。->解決?しました。

元々は、ipconfig /allのコマンド出力結果から、単に
set contents1=%contents1:(優先)=%
で、(優先)を取ろうとしてます。

なぜか、if文の中で文字置き換えすると、エラーになるんです。
if文の外なら、問題ないのです。
もちろん、gotoで飛ばしてif文から出せば、エラー回避は出来ますが、何が起きてるのか、不思議です。

以下のバッチはremが3つありますが、どのremをとってもエラーになります。

原因わかる方いませんか?

@gehahaさんに、教えていただきました。if文の中に、()の文字が存在すると誤動作するそうです。
()の文字が存在する場合は、if文の外に書かないとだめらしいです。
多分、バグなんだろうけど、しょうがないですね。

test.bat

@echo off
setlocal enabledelayedexpansion

set contents1=「テスト(優先)set contents2=%contents1%
set contents3=%contents1%
set contents4=%contents1%

set contents1=%contents1:(優先)=%
echo contents1=%contents1%

set contents2=!contents2:(優先)=!
echo contents2=%contents2%

if 1==1 (
  set contents3=%contents3:(優先)=%
  echo 3
rem  echo contents3='%contents3%'
)
echo contents3=%contents3%

if 1==1 (
rem  set contents4=!contents4:(優先)=!
  echo 4
rem  echo contents4=%contents4%
)
echo contents4=%contents4%

endlocal


1
0
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?