假设我有一些东西:
echo %cd%
echo %~f0
我希望将其输出到foo.bat:
echo echo %cd% > foo.bat
echo echo %~f0 >> foo.bat
但是,这不起作用,因为变量会被扩展。我能做到:
echo echo %%cd%% > foo.bat
修复第一个,但我不知道如何修复第二个。
答案 0 :(得分:1)
使用另一个百分比逃避百分比,然后使用batch file escape character ^
转义波浪号,例如
{{1}}
答案 1 :(得分:1)
如果您想不扩展就回显%MY_VAR%
,则转义为%%MY_VAR%%
无效。仅转义为%MY_VAR^%
或^%MY_VAR^%
会按预期输出%MY_VAR%
。
还请注意,引号存在时也必须转义以免扩展。请参见以下示例:
set FOO=BAR
echo %FOO%
BAR
echo %%FOO%%
%BAR%
echo %FOO^%
%FOO%
echo ^%FOO^%
%FOO%
echo "%FOO%"
"BAR"
echo "%%FOO%%"
"%BAR%"
echo "%FOO^%"
"%FOO^%"
echo "^%FOO^%"
"^%FOO^%"
echo ^"%FOO%"
"BAR"
echo ^"%FOO%^"
"BAR"
echo "%FOO%^"
"BAR^"
echo ^"%FOO^%"
"%FOO%"
echo ^"^%FOO^%"
"%FOO%"
echo ^"^%FOO^%^"
"%FOO%"