Board logo

标题: [文件操作] [已解决]批处理中dir/b配合for得到错误的路径? [打印本页]

作者: zhouyongjun    时间: 2009-4-22 15:57     标题: [已解决]批处理中dir/b配合for得到错误的路径?

请各位帮忙看看:
C:\TEST
│  1.txt
│  2.txt
│  5

└─3
        4.txt
测试批处理:D:\学习\test.bat

测试一:
  1. @echo off
  2. for /f "delims=" %%i in ('dir/b "c:\test\*"') do echo %%~fi
  3. pause
复制代码
结果为:
D:\学习\1.txt
D:\学习\2.txt
D:\学习\3
D:\学习\5
请按任意键继续. . .

测试二:
  1. @echo off
  2. for /f "delims=" %%i in ('dir/s/b "c:\test\*"') do echo %%i
  3. pause
复制代码
结果为:
c:\test\1.txt
c:\test\2.txt
c:\test\3
c:\test\5
c:\test\3\4.txt
请按任意键继续. . .

我在论坛中搜索dir没有搜到相应问题,前者就是少了/s参数,结果就不对了,我百思不得其解啊。

[ 本帖最后由 zhouyongjun 于 2009-4-22 19:39 编辑 ]
作者: 随风    时间: 2009-4-22 16:48

%%~fi 扩展的是 变量 %%i 的路径,第一例中因为 %%i 的值没有路径,所以for就把自身的路径加了进去,你的批处理所在路径应该是D:\学习吧。
作者: zhouyongjun    时间: 2009-4-22 17:54

哦,明白了,谢谢,一时脑壳短路。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2