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

[文本处理] 批处理bat如何提取目录最深层?

  1. @echo off
  2. set "list=E:\winfs\beudf\ D:\uuyrty\owuey\polwur\ D:\moieyr\oieyrds\dloueys\llowyrf\
  3. for %%a in (%list%) do
  4. xcopy /iEyq %%a Z:\Info\##\New\##
复制代码
这是一个备份脚本
##代表list变量的最深一层目录,beudf  polwur  llowyrf  、就是这个地方不会提取目录的最深层

目录深度和长度都不固定、求大神帮忙、完善下、如有更好的思路更好。谢谢大家了
听说这么世界很美好、好多人都会帮我。。。

本帖最后由 Linux9253 于 2015-8-24 09:07 编辑

回复 6# pcl_test


   刚才我测试过了、非常感谢、但是有一个问题就是、bat脚本里还有很多的其他代码、
如果只是您给我的代码是能解决问题的、但如果还有其他代码就不行了、、、会把其他代码当成文件目录创建。
请问怎么解决呢?谢谢、给您添麻烦了


好吧、我承认我很笨、刚才我自己按照自己的思路修改下、竟然可以了、
所以不麻烦了
听说这么世界很美好、好多人都会帮我。。。

TOP

回复 5# Linux9253

已修改

TOP

回复 4# pcl_test

刚才不好意思、出去吃饭了、

    就是要把定义好的多个目录拷贝到另一个地方暂时称为Z:盘、在Z:盘这个地方要注意的是

目录结构、假如多个目录中有个目录是C:\administrative\complete\  把它拷贝到Z:盘后的目录结构是Z:\complete\New\complete

当然这个\complete\New\complete目录是不存在的、所以要检测、存在就不创建、直接复制、不存在就创建、然后复制

就是这个要求、麻烦您了
听说这么世界很美好、好多人都会帮我。。。

TOP

并不明白你想要的效果

TOP

回复 2# pcl_test


    非常感谢您的回复、没想到星期天还在工作、致敬,
代码刚才一直在测试、可以提取最深的目录、但因为个人水平问题、一直没能把
想要的功能嵌套进去,
  1. @echo off
  2. 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
  3. pause&exit
  4. E:\winfs\beudf
  5. D:\uuyrty\owuey\polwur
  6. D:\moieyr\oieyrds\dloueys\llowyrf
复制代码
不知道这个时候%%a是不是代表的完整路径、总是我没有实现我想要的功能、又来麻烦您了、
可能你现在在吃饭把、没事、吃完在解决、
听说这么世界很美好、好多人都会帮我。。。

TOP

本帖最后由 pcl_test 于 2015-8-22 15:09 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('more +6 %0') do (
  3.    md "Z:\%%~nxa\New" 2>nul
  4.    xcopy "%%a" "Z:\%%~nxa\New\%%~nxa\" /eyq
  5. )
  6. pause&exit
  7. E:\winfs\beudf
  8. D:\uuyrty\owuey\polwur
  9. D:\moieyr\oieyrds\dloueys\llowyrff
复制代码

TOP

返回列表