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

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中相关命名的文件夹(包括文件夹下的文件)

请求批处理的方式有没有什么方法能做到,不甚感激!

回复 3# terse

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

TOP

本帖最后由 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
复制代码

TOP

并没有说得很清楚

而我需求的是查询txt中相关命名的文件夹(包括文件夹下的文件)
是什么意思?
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

返回列表