わかりました、頭がおかしくなりました。他に何をすればよいかわかりません。いくつかのことを試しましたが、何も機能していません。
このサンプル コード (test.cmd) を見てください。
setlocal enabledelayedexpansion enableextensions
set VAR=before
if "%VAR%" == "before" (
set VAR=after;
if "%VAR%" == "after" @echo If you see this, it worked
)
これは生成された出力です:
D:\>ver
Microsoft Windows [Version 6.1.7600]
D:\>test.cmd
D:\>setlocal enabledelayedexpansion enableextensions
D:\>set VAR=before
D:\>if "before" == "before" (
set VAR=after;
if "before" == "after"
)
D:\>
私は何か間違ったことをしていますか?
これは単なるテストです。必要なコードは変数も使用し、遅延展開が必要ですが、この単純なテストは機能しませんが、他のテストも機能しません (試してみたところ、機能するかどうかをテストするための簡単な例になりました)。
編集: 新しいコードと出力:
test.cmd:
@echo off
setlocal enabledelayedexpansion enableextensions
set VAR=before
if "%VAR%" == "before" (
set VAR=after;
if "!VAR!" == "after" (
echo It worked.
) else (
echo It didn't work.
)
)
出力:
D:\>test.cmd
It didn't work.
D:\>