[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理中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 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

%%~fi 扩展的是 变量 %%i 的路径,第一例中因为 %%i 的值没有路径,所以for就把自身的路径加了进去,你的批处理所在路径应该是D:\学习吧。
技术问题请到论坛发帖求助!

TOP

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

TOP

返回列表