Board logo

标题: [文件操作] 批处理怎样批量操作文件,符合要求的文件名提取 [打印本页]

作者: kmustwxw    时间: 2015-1-23 09:49     标题: 批处理怎样批量操作文件,符合要求的文件名提取

├─001
│  ├─001001
│  │  ├─YZ00001
│  │  │  ├─用处1
│  │  │  ├─用处2
│  │  │  └─用处3
│  │  │        YZ用处有(2013)第00001号.pdf
│  │  │       YZ用处有(2013)第00002号.pdf
│  │  │         
│  │  ├─YZ00002
│  │  │  ├─用处1
│  │  │  ├─用处2
│  │  │  └─用处3
│  │  │        YZ用处有(2013)第00005号.pdf
│  │  ├─YZ00003
│  │  │  ├─用处1
│  │  │  │      SP用处(2013)第00006号.pdf  
│  │  │  ├─用处2
│  │  │  │      SQ用处(2013)第00006号.pdf  
│  │  │  └─用处3
│  │  │          YZ用处有(2013)第00006号.pdf         
│  │  ├─YZ00004
│  │  │  ├─用处1
│  │  │  ├─用处2
│  │  │  └─用处3
│  │  │         YZ用处有(2013)第00007号.pdf

………………依此类推,下面还有好多这样结构的目录。
问题描述:有许多这种结构的目录,里面放了许多对应的pdf,但是有好多名为:“用处1”和“用处2”的文件夹里面是空的,我想把它找出来,但是并不是简单的找不来,假如用处1文件夹是空的,我要把用处3里面的文件的名字加上上两级目录的名字写入到一个txt文本中。比如:YZ00001目录下的用处1是空的,则要把:001001YZ00001YZ用处有(2013)第00001号.pdf
            001001YZ00001YZ用处有(2013)第00002号.pdf
写到一个文本中,以便后面会用到。
说明:1、如果用处1是空的,用处2肯定也是空的,用判断的时候可以不用考虑用处2文件夹。
          2、如果上述要求用批处理无法实现,也可以把用处3目录下的pdf文件的名字依次命名给用处1和用处2里的文件也可以。我在网上找了好久,也写了点代码,但是没有能做出来,只能求助了,先谢谢了。如果我的描述不清楚,提问我会继续说清楚。
作者: battab    时间: 2015-1-23 16:40

建议你把模拟文件发一个上来.
作者: battab    时间: 2015-1-25 11:45

自己搞了个模拟的文件夹测试
感觉效果还可以接受
希望有帮到你
ps:批处理文件与测试文件001放在同一层次目录下运行
  1. @echo off
  2. for /f %%a in ('dir /b .\001') do (
  3. rem 获取001目录下的文件名                    
  4. for /f %%b in ('dir /b .\001\%%a') do (
  5. rem 获取001001目录下的文件名
  6. dir /b .\001\%%a\%%b\用处1|findstr .>nul&&echo.>nul||for /f %%c in ('dir
  7. /b .\001\%%a\%%b\用处3') do (echo %%a%%b%%c)
  8. rem 判断用处1文件夹是否为空,非空不做处理,为空则获取用处3文件夹下的文件名并按
  9. 指定格式输出
  10. )
  11. )>>result.txt
  12. )
复制代码

作者: kmustwxw    时间: 2015-1-26 10:06

回复 3# battab 太感谢你了,修改了下,可以用,谢谢。
作者: battab    时间: 2015-1-26 11:33

回复 4# kmustwxw

之前对&&和||没搞清楚,
修改后,
这个速度应该会快一点。




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