答案1
对于 prompt 变量,您永远不应使用特殊字符。始终使用special codes
只要有可能,就可以找到prompt /?
。
回复您的评论:
与其他变量一起使用SetLocal EnableDelayedExpansion
!
.然后使用s 代替s来引用变量%
。
延迟扩展将导致变量在执行时而不是在解析时扩展,此选项通过 启用
SETLOCAL command
。当延迟扩展生效时,变量可以使用!variable_name!
(除了正常的%variable_name%
)来引用
由于变量在执行时被扩展,并且特殊字符>
(在本例中)仅在解析时才是特殊的,因此您完全避开了这个问题。
例如:
SetLocal EnableDelayedExpansion
set test=World^>
set test2=Hello !test!
请注意,^
是转义字符,允许您输入特殊字符(变量将存储为World>
,因此,除非您确实set test=World^^^>
导致存储值为World^>
,否则这对您的问题不起作用。
转义可能会变得很复杂。例如,要设置test2
为文字!test!
,您需要使用^^!test^^!
,否则您只会获得的值test
。如果我真的需要,我通常只需改变转义字符的数量直到它起作用,这比试图找出解析规则更容易。