回复 11# CrLf
多谢指教,意思就是说预处理中特殊字符的处理晚于%a%,早于%%a和!a!以及set/a?
因为如下会生成test.txt:- set "test=>test.txt"
- echo,%test%
复制代码 而以下两种情况都只会显示“>test.txt”:- for %%a in (">test.txt") do echo,%%~a
复制代码
- setlocalenabledelayedexpansion
- set "test=>test.txt"
- echo,!test!
复制代码 原来netbenton前辈曾发帖讨论过预处理时变量的替换优先级,%1>%a%>%%a>!a!>set/a,看来这个特殊字符的处理插入到它们之中了。 |