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

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

评分人数

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

我知道了,应该是我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就只有复件了,而没有空格之后的名字

TOP

for /f "delims=" %%i in ('dir/b/a-d e:\test\*.rar') do echo %%i

TOP

谢谢楼上的,不过我自己已经搞定了
和你的差不多
  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的话,就无法删除了

TOP

回复 4楼 的帖子

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

TOP

返回列表