楼 主
发现for的/r参数一个bug
发表于 2008-04-21 13:07 · 中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
也许不是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
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~
空间~~
cmd学习
第 2 楼
发表于 2008-04-21 13:30 · 中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
前三种要给前面加个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是怎么扩展变量的?
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~
空间~~
cmd学习
第 3 楼
发表于 2008-04-21 13:35 · 中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
晕,不光是/r参数,其他参数/d 还有空参 也是这样,
大家可以试试
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~
空间~~
cmd学习
第 4 楼
发表于 2008-04-21 23:25 · 中国 湖北 武汉 电信
中级用户
★★
积分 471
发帖 207
注册 2007-05-03 14:53
UID 87369
性别 男
状态 离线
不是bug,不好解释。
不过 /d 和 空参 不会出现类似 /r 这样的现象。
第 5 楼
发表于 2008-04-21 23:38 · 中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
我上午试过有的,今晚上怪了,试不出来了,
for把/ \.好像视为参数在此扩展,这它怪了
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~
空间~~
cmd学习
第 6 楼
发表于 2008-04-23 14:42 · 中国 北京 大兴区 联通
初级用户
★
积分 50
发帖 19
注册 2008-02-09 22:04
UID 110396
性别 男
状态 离线
再试几个例子就应该可以得出初步的结论
例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。
论坛跳转: