如何将字符串传递给包含%和!等特殊字符的标签?

时间:2013-11-30 16:26:09

标签: batch-file

示例:

call :my_label %%my!my%%myfolder%%folder!folder%%
:my_label
set my_local_var=%1
echo %my_local_var%

我认为没有办法完整地将此字符串作为局部变量,有没有办法在单个百分比变量上启用延迟扩展?或者任何其他方法来防止在字符串中解析变量?

1 个答案:

答案 0 :(得分:1)

目前尚不清楚您的期望,但一般规则是使用call引用而不是值,因为某些值根本无法传输。

所以你可以使用这样的东西。

setlocal EnableDelayedExpansion
set "myString=%%my^!%%folder^!folder"
call :my_label myString
exit /b

:my_label
set "temp=!%1!"
echo !temp!
exit /b