1

将变量作为 %VAR% 而不是变量的值写入文件,以及在重定向输出时要求使任务列表功能正确。

我用来写入文件的代码:

echo tasklist /FI "IMAGENAME eq %ZOEXT%" 2>NUL | find /I /N "%ZOEXT%">NUL >> boot.bat
echo if "%ERRORLEVEL%"=="1" start /d "%ZODIR%" %ZOEXT% >> boot.bat

结果:

tasklist /FI "IMAGENAME eq Zoiper.exe"  
if "0"=="1" start /d "C:\Documents and Settings\mgladman\Desktop\Zoip\Zoiper Communicator\" Zoiper.exe 

我想添加到 boot.bat 中的内容:

tasklist /FI "IMAGENAME eq %ZOEXT%" 2>NUL | find /I /N "%ZOEXT%">NUL
if "%ERRORLEVEL%"=="1" start /d "%ZODIR%" %ZOEXT%

如果你想要我可以发布整个代码而不仅仅是段,这是一个很酷的脚本:P 只是有这个小问题。

我能想到的唯一“解决方法”是制作第一个脚本,在第一个文件中回显 echo 并写入正确的系统数据(这必须是一个可移植脚本,这样才能工作,但会很混乱)

4

3 回答 3

2

如果您在命令行中,则可以转义%使用。^

例如:

set var=test
echo %var%

回声test

set var=test
echo ^%var^%

回声%var%

在批处理文件中,您必须使用双 % -

set var=1
echo %%var%%

回声%var%

于 2011-04-25T04:19:28.683 回答
2

%可以在一个批次内以百分比转义 。

echo %%var%%

这在命令行上不起作用,因为解析器在那里工作有点不同。
百分比不存在转义字符,但如果变量不存在,则保留百分比。

set "var="
set "var2=content"
echo %var%  %%var2%%

结果
%var% %content%

于 2011-04-26T13:28:57.597 回答
0

只需将百分比符号加倍即可转义它们,并使用插入符号转义大多数其他特殊字符。这是我的做法:

(echo tasklist /FI "IMAGENAME eq %%ZOEXT%%" 2^>NUL ^| find /I /N "%%ZOEXT%%"^>NUL)>>boot.bat
(echo if "%%ERRORLEVEL%%"=="1" start /d "%%ZODIR%%" %%ZOEXT%%)>>boot.bat
于 2011-05-01T21:22:20.907 回答