首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

批处理中,for的用法解决方法

2012-09-08 
批处理中,for的用法代码tmp.bat:echo onfor /f %%i in (dir /b) do (set str1%%iecho %str1%pause)但

批处理中,for的用法
代码tmp.bat:
echo on
for /f %%i in ('dir /b') do (
set str1=%%i
echo "%str1%"
pause
)

但每次输出结果都一样。就是echo输出的,与之前set的值不同。

下面是本地测试结果:

首先查看dir /b
E:\Test>dir /b
Debug
Test
Test.ncb
Test.sln

-------------------------------

cmd窗口中运行tmp.bat

E:\Test>e:/tmp.bat

E:\Test>echo on

E:\Test>for /F %i in ('dir /b') do (
set str1=%i
 echo ""
 pause
)

E:\Test>(
set str1=Debug
 echo ""
 pause
)
""
请按任意键继续. . .

E:\Test>(
set str1=Test
 echo ""
 pause
)
""
请按任意键继续. . .

E:\Test>(
set str1=Test.ncb
 echo ""
 pause
)
""
请按任意键继续. . .

E:\Test>(
set str1=Test.sln
 echo ""
 pause
)
""
请按任意键继续. . .

E:\Test>

[解决办法]
楼上写得已经非常经典了,学习了!
[解决办法]
除了使用“延迟变量”(百度一下!!)
你还得注意:(set str1=%%i & echo !str1!)中间的&,
意思是执行完上一条命令之后,继续执行下一条
不要直接就set str1=%%i echo !str1!
[解决办法]
对要打开延迟变量开关。用!应用变量。
每一个语句一行,不要都写在一行上面,这样看起来不舒服,以后不容易修改,也就不需要&符号了

热点排行