标题: 发现for的/r参数一个bug
[打印本页]
作者: plp626
时间: 2008-4-21 13:07
标题: 发现for的/r参数一个bug
也许不是bug,但确实未曾遇到,那位可以解释下?
/r参数对集合里的.匹配为目录,可是下面4种方式:
for /r %b in (.)do echo/%b
for /r %b in (.)do echo\%b
for /r %b in (.)do echo.%b
只有这个代码正确显示:
for /r %b in (.)do echo %b
作者: plp626
时间: 2008-4-21 13:30
前三种要给前面加个call才能正确显示:
for /r %b in (.)do call echo/%b
for /r %b in (.)do call echo\%b
for /r %b in (.)do call echo.%b
这奇怪,这个for是怎么扩展变量的?
作者: plp626
时间: 2008-4-21 13:35
晕,不光是/r参数,其他参数/d 还有空参 也是这样,
大家可以试试
作者: ThinKing
时间: 2008-4-21 23:25
不是bug,不好解释。
不过 /d 和 空参 不会出现类似 /r 这样的现象。
作者: plp626
时间: 2008-4-21 23:38
我上午试过有的,今晚上怪了,试不出来了,
for把/ \.好像视为参数在此扩展,这它怪了
作者: xzyx
时间: 2008-4-23 14:42
再试几个例子就应该可以得出初步的结论
例1、
for /r %%i in (.) do echo...
例2、
for /r %%i in (.) do echo.hero
例3、
@echo off
setlocal enabledelayedexpansion
set hero=uu
for /r %%i in (.) do echo.!hero!&set hero=88
pause
还是感觉更像bug。