批量延迟扩展不起作用

好吧,我疯了,我不知道还有什么要做,我已经尝试了几件事,没有任何工作。

看看这个示例代码(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:>

难道我做错了什么?

batch file在FOR循环中使用特殊的字符和引号来处理string

使用命令提示符确定Tomcat是否在Windows中运行

使用Windowsbatch file将具有相同文件名的不同文件夹中的多个文件复制到一个通用文件

一个JAR文件如何删除自己?

如何创build从batch file复制ping信息的文本文件

这只是一个testing,我需要的代码也使用variables也需要延迟扩展,但它这个简单的testing不工作,其他不会工作(我试过了,我结束了一个简单的例子来testing它是否工作)。

编辑:新的代码输出

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:>

Windows cmd shell xcopy到networking目录不起作用

如何从命令行中删除系统驱动器中的所有文件

batch file提取并将文本传入variables?

批处理没有按预期工作检查具体文件中的更改

如何pipe理批处理脚本输出到PowerShell脚本?

你必须使用!var! 为延期扩张。 %var%总是在分析阶段展开。

也就是说,改变你的代码

setlocal enabledelayedexpansion enableextensions set VAR=before if "%VAR%" == "before" ( set VAR=after if "!VAR!" == "after" @echo If you see this,it worked )

不要使用==,批量中你必须使用EQU

例如写:

if %bla% EQU %blub% echo same

我发现你的问题。

set VAR=after;

删除 从上面的代码

相关文章

可以认为OpenFeign是Feign的增强版,不同的是OpenFeign支持S...
为进一步规范小程序交易生态、提升用户购物体验、满足用户在...
云原生之使用Docker部署Dashdot服务器仪表盘
本文主要描述TensorFlow之回归模型的基本原理
1.漏洞描述Apache Druid 是一个集时间序列数据库、数据仓库和...
内部类(当作类中的一个普通成员变量,只不过此成员变量是cl...