好吧,我疯了,我不知道还有什么要做,我已经尝试了几件事,没有任何工作。
看看这个示例代码(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将具有相同文件名的不同文件夹中的多个文件复制到一个通用文件夹
如何创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;