windows 批处理程序批量查找文档

有一个待查的文档名列表filelist,其中包含多个文档名。(这个list该存放在哪里?一个记事本里?)在所有硬盘驱动器中查找这些文档,查到以后复制到指定位置,比如d:\... 有一个待查的文档名列表filelist,其中包含多个文档名。(这个list该存放在哪里?一个记事本里?)
在所有硬盘驱动器中查找这些文档,查到以后复制到指定位置,比如d:\

该怎么写?
展开
 我来答
hnsz2k
2012-07-31 · TA获得超过1582个赞
知道大有可为答主
回答量:1360
采纳率:100%
帮助的人:1449万
展开全部
请把 待查的文档名列表 filelist.txt 与包含下面代码的批处理文件放到一起。
下面代码只搜索全部硬盘(不搜索U盘、光盘、网络盘等等)。
如果直接把找到的文件复制到 D: 盘,在查找 D: 盘时又会找到这些刚刚复制过来的文件,可能造成混乱,所以下面代码先把所有硬盘上找到的指定文件的位置保存到 d:\foundfiles.txt. 待全部文件查找完以后,再专门根据 d:\foundfiles.txt 的信息,复制文件到 d:\foundfiles(放到 D: 根目录可能有点乱吧)

@echo off&setlocal enabledelayedexpansion
for /f "skip=1" %%i in ('wmic logicaldisk where drivetype^=3 get name') do (
cd /d %%i\
for /f "delims=" %%f in (filelist.txt) do (set "f=%%f"
for /f "delims=" %%s in ('dir /b /s /a-d "!f!"') do echo %%s>>d:\foundfiles.txt))
md d:\foundfiles
for /f "delims=" %%f in (d:\foundfiles.txt) do copy "%%f" d:\foundfiles
xq1850
2012-07-31 · TA获得超过3790个赞
知道大有可为答主
回答量:3155
采纳率:76%
帮助的人:1554万
展开全部
setlocal enabledelayedexpansion
for /f %%a in (list.txt) do (
set aa=%%a
for /f "tokens=*" %%a in ('dir /s /b !aa!') do copy "%%a" d:\
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式