Board logo

标题: [文件操作] [已解决]批处理for语句取带空格的文件 [打印本页]

作者: nonfish    时间: 2009-8-20 17:04     标题: [已解决]批处理for语句取带空格的文件

  1. dir E:\test\*.rar /O:-D >test.txt
  2. for /F "skip=10 tokens=4" %%i in (test.txt) do echo %%i
复制代码
如上
E:\test下有很多个rar文件,我用这个命令可以输出一般的rar文件的名字,但如果rar名字带有空格,如"新建 文件夹.rar",那他输出时就只输出新建两个字,后面的给截取了,怎么解决这种问题呢?

[ 本帖最后由 nonfish 于 2009-8-20 18:47 编辑 ]
作者: nonfish    时间: 2009-8-20 17:24

我知道了,应该是我dir的时候的问题
  1. 2009-08-20  16:42                20 5.rar
  2. 2009-08-20  16:42                20 4.rar
  3. 2009-08-20  16:42                20 3.rar
  4. 2009-08-20  16:42                20 复件 (4) 3.rar
  5. 2009-08-20  16:42                20 复件 (2) 3.rar
  6. 2009-08-20  16:42                20 复件 3.rar
  7. 2009-08-20  16:42                20 复件 (3) 3.rar
  8. 2009-08-20  16:42                20 复件 (2) 2.rar
  9. 2009-08-20  16:42                20 复件 2.rar
  10. 2009-08-20  16:42                20 复件 (3) 2.rar
  11. 2009-08-20  16:42                20 复件 (4) 2.rar
复制代码
我要取第四列,而空格会把复件 3.rar等类型的文件分开,所以取出来的txt就只有复件了,而没有空格之后的名字
作者: zhouyongjun    时间: 2009-8-20 17:32

for /f "delims=" %%i in ('dir/b/a-d e:\test\*.rar') do echo %%i
作者: nonfish    时间: 2009-8-20 18:08

谢谢楼上的,不过我自己已经搞定了
和你的差不多
  1. dir E:\test\*.rar /b /O:-D >test.txt
  2. for /F "skip=10 delims=" %%i in (test.txt) do echo "%%i"
复制代码
大家看看,还有啥问题
对了,楼上的,最后一个%%i是不是应该加上引号呢
我发现,如果不加引号的话,这个语句里的echo换成del的话,就无法删除了
作者: zhouyongjun    时间: 2009-8-20 21:52     标题: 回复 4楼 的帖子

呵呵,echo显示不用加引号,del或ren需要加引号




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