标题: [文件操作] 批处理怎样批量操作文件,符合要求的文件名提取 [打印本页]
作者: 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放在同一层次目录下运行
- @echo off
- for /f %%a in ('dir /b .\001') do (
- rem 获取001目录下的文件名
- for /f %%b in ('dir /b .\001\%%a') do (
- rem 获取001001目录下的文件名
- dir /b .\001\%%a\%%b\用处1|findstr .>nul&&echo.>nul||for /f %%c in ('dir
-
- /b .\001\%%a\%%b\用处3') do (echo %%a%%b%%c)
- rem 判断用处1文件夹是否为空,非空不做处理,为空则获取用处3文件夹下的文件名并按
-
- 指定格式输出
- )
- )>>result.txt
- )
复制代码
作者: kmustwxw 时间: 2015-1-26 10:06
回复 3# battab 太感谢你了,修改了下,可以用,谢谢。
作者: battab 时间: 2015-1-26 11:33
回复 4# kmustwxw
之前对&&和||没搞清楚,
修改后,
这个速度应该会快一点。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |