标题: [文本处理] 批处理bat如何提取目录最深层? [打印本页]
作者: Linux9253 时间: 2015-8-22 11:54 标题: 批处理bat如何提取目录最深层?
- @echo off
- set "list=E:\winfs\beudf\ D:\uuyrty\owuey\polwur\ D:\moieyr\oieyrds\dloueys\llowyrf\
- for %%a in (%list%) do
- xcopy /iEyq %%a Z:\Info\##\New\##
复制代码
这是一个备份脚本
##代表list变量的最深一层目录,beudf polwur llowyrf 、就是这个地方不会提取目录的最深层
目录深度和长度都不固定、求大神帮忙、完善下、如有更好的思路更好。谢谢大家了
作者: pcl_test 时间: 2015-8-22 12:03
本帖最后由 pcl_test 于 2015-8-22 15:09 编辑
- @echo off
- for /f "delims=" %%a in ('more +6 %0') do (
- md "Z:\%%~nxa\New" 2>nul
- xcopy "%%a" "Z:\%%~nxa\New\%%~nxa\" /eyq
- )
- pause&exit
- E:\winfs\beudf
- D:\uuyrty\owuey\polwur
- D:\moieyr\oieyrds\dloueys\llowyrff
复制代码
作者: Linux9253 时间: 2015-8-22 12:26
回复 2# pcl_test
非常感谢您的回复、没想到星期天还在工作、致敬,
代码刚才一直在测试、可以提取最深的目录、但因为个人水平问题、一直没能把
想要的功能嵌套进去,- @echo off
-
- for /f "delims=" %%a in ('more +3 %0') do if not exist C:\%%~nxa\New (mkdir C:\%%~nxa\New) & xcopy /iEyq %%a C:\%%~nxa\New\%%~nxa
- pause&exit
- E:\winfs\beudf
- D:\uuyrty\owuey\polwur
- D:\moieyr\oieyrds\dloueys\llowyrf
复制代码
不知道这个时候%%a是不是代表的完整路径、总是我没有实现我想要的功能、又来麻烦您了、
可能你现在在吃饭把、没事、吃完在解决、
作者: pcl_test 时间: 2015-8-22 12:32
并不明白你想要的效果
作者: Linux9253 时间: 2015-8-22 14:51
回复 4# pcl_test
刚才不好意思、出去吃饭了、
就是要把定义好的多个目录拷贝到另一个地方暂时称为Z:盘、在Z:盘这个地方要注意的是
目录结构、假如多个目录中有个目录是C:\administrative\complete\ 把它拷贝到Z:盘后的目录结构是Z:\complete\New\complete
当然这个\complete\New\complete目录是不存在的、所以要检测、存在就不创建、直接复制、不存在就创建、然后复制
就是这个要求、麻烦您了
作者: pcl_test 时间: 2015-8-22 15:09
回复 5# Linux9253
已修改
作者: Linux9253 时间: 2015-8-22 16:14
本帖最后由 Linux9253 于 2015-8-24 09:07 编辑
回复 6# pcl_test
刚才我测试过了、非常感谢、但是有一个问题就是、bat脚本里还有很多的其他代码、
如果只是您给我的代码是能解决问题的、但如果还有其他代码就不行了、、、会把其他代码当成文件目录创建。
请问怎么解决呢?谢谢、给您添麻烦了
好吧、我承认我很笨、刚才我自己按照自己的思路修改下、竟然可以了、
所以不麻烦了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |