Batch file 如何在不调用变量的情况下回显变量?
我试图创建一个批处理文件,创建另一个批处理文件(Compile.bat),并需要将%errorlevel%变量回显到Compile.bat中,但由于调用它时它是一个全局变量,因此它使用当前值 这是密码Batch file 如何在不调用变量的情况下回显变量?,batch-file,Batch File,我试图创建一个批处理文件,创建另一个批处理文件(Compile.bat),并需要将%errorlevel%变量回显到Compile.bat中,但由于调用它时它是一个全局变量,因此它使用当前值 这是密码 ECHO if NOT "%errorlevel%"=="0" PAUSE >> .\%name%\Compile.bat 但是Compile.bat接收 if NOT "0"=="0" PAUSE 有没有办法阻止它认为%errorlevel%是一个变量?您必须用双精度%%来转义
ECHO if NOT "%errorlevel%"=="0" PAUSE >> .\%name%\Compile.bat
但是Compile.bat接收
if NOT "0"=="0" PAUSE
有没有办法阻止它认为%errorlevel%是一个变量?您必须用双精度
%%
来转义errorlevel变量,如下所示:
ECHO if NOT "%%errorlevel%%"=="0" PAUSE >> .\%name%\Compile.bat
我想这就是你想要的:
if NOT "%errorlevel%"=="0" PAUSE
这里有一些帮助代码
@Echo关闭
设置“name=SomeName”
设置“变量=值”
Rem Write to Compile.bat
Echo按任意键写入Compile.bat
暂停>Nul
(
回声@回声关闭
Echo%%variable%%=%variable%
回声暂停
)>%name%\Compile.bat
Echo已完成对Compile.bat的编写
超时3/NoBreak>Nul
下面是代码的剩余部分
您的解释不够笼统。问题是百分比符号。不是变量。如果需要将百分比符号回显到另一个文件,则始终将百分比符号加倍。不需要使用外括号进行比较。你可以用双引号<代码>如果不是回显“%%errorlevel%%”==“0”暂停>>。\%name%\Compile.bat