返回列表 发帖
回复 2# lvsehuaxue
echo %%i&echo.
这句会死得很惨啊,原文中那么多的"<"和">"。
1

评分人数

    • CrLf: 乐于助人PB + 3
看得多说得多,远比不上写得多。

TOP

回复 4# lvsehuaxue
果然,我武断地以为for在迭代出echo %%i时会把<>认为是重定向符号,原来不会。。。很奇怪,单独执行echo <123>就会出错,看来for/f会自动地过滤掉一些特殊字符。
看得多说得多,远比不上写得多。

TOP

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

TOP

返回列表