微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

批量延迟扩展不起作用

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

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

删除 从上面的代码

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐