小编Ric*_*ard的帖子

批量延迟扩展不起作用

好吧,我变得疯狂,我不知道还能做什么,我已经尝试了几件事,但没有任何工作.

看看这个示例代码(test.cmd):

setlocal enabledelayedexpansion enableextensions
set VAR=before
if "%VAR%" == "before" (
    set VAR=after;
    if "%VAR%" == "after" @echo If you see this, it worked
)
Run Code Online (Sandbox Code Playgroud)

这是生成的输出:

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:\>
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

这只是一个测试,我需要的代码也使用变量并且需要延迟扩展,但是这个简单的测试不起作用,另一个也不会工作(我试过,我最后得到一个简单的例子来测试它是否有效).

编辑:新代码和输出:

TEST.CMD:

@echo off
setlocal enabledelayedexpansion enableextensions
set VAR=before
if "%VAR%" == "before" (
   set VAR=after;
   if "!VAR!" == "after" (
      echo It worked.
   ) else ( …
Run Code Online (Sandbox Code Playgroud)

windows batch-file delayedvariableexpansion

2
推荐指数
1
解决办法
1万
查看次数