Board logo

标题: 50元(支付宝)求助批处理如何在硬盘中筛选出txt中所列的文件夹。 [打印本页]

作者: xlongx    时间: 2015-11-17 16:55     标题: 50元(支付宝)求助批处理如何在硬盘中筛选出txt中所列的文件夹。

工作上遇到了这个问题,硬盘其实是指路由上的服务器,但是我也可以把它添加网络位置并加载进虚拟盘。

网上查阅了很多资料,目前可行的代码是
  1. @echo off
  2. set "share=192.168.1.7\查询目录"
  3. set "fd=文件名"
  4. for /f "delims=" %%a in ('dir /ad /b /s "%share%\%fd%?"') do (
  5.         if /i "%%~nxa" == "%fd%" (
  6.                 xcopy /s /h /c /y "%%a\*" "E:\new\"
  7.         )
  8. )
  9. pause
复制代码
但是这个代码只能使用文件名一项一项的查找,而且查找的是所有的子文件(若有重复命名的则直接覆盖了)

而我需求的是查询txt中相关命名的文件夹(包括文件夹下的文件)

请求批处理的方式有没有什么方法能做到,不甚感激!
作者: 依山居    时间: 2015-11-17 18:14

并没有说得很清楚

而我需求的是查询txt中相关命名的文件夹(包括文件夹下的文件)
是什么意思?
作者: terse    时间: 2015-11-17 18:58

本帖最后由 terse 于 2015-11-17 19:03 编辑

你希望怎么处理重复文件夹
  1. @echo off & setlocal enabledelayedexpansion
  2. set "share=192.168.1.7\查询目录"
  3. set "fd=文件名"
  4. for /f "delims=" %%a in ('dir /ad /b /s "%share%\%fd%?"') do (
  5.         if /i "%%~nxa" == "%fd%" (
  6.                 set /a n+=1
  7.                 xcopy /s /h /c /y "%%a" "E:\new\%fd%_!n!\"
  8.         )
  9. )
  10. pause
复制代码

作者: xlongx    时间: 2015-11-18 08:43

回复 3# terse

文件名那里我是想用一个txt列表,把要查找的文件名关键字都列出来。
同时如果有重复的文件,那么优先找出在关键字为“主图”文件夹下的文件。。   
最后把这些文件都重新复制到以这个文件名关键字命名的新文件夹中。




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