如何根据指定目录从一个文件夹中(含子文件夹)中搜索对应文件并自动复制至新路径下?
如图:图1是目录,A列为序号,B列为材料名称,另有一个含子文件夹的大文件夹(乱七八糟东西很多),需要从大文件夹中按照图1B列内容搜索文件(基本都是PDF),然后复制至图2...
如图:图1是目录,A列为序号,B列为材料名称,另有一个含子文件夹的大文件夹(乱七八糟东西很多),需要从大文件夹中按照图1 B列内容搜索文件(基本都是PDF),然后复制至图2中对应的文件夹中。以图1的0009行为例,从大文件夹中搜索“846”,将搜索出的PDF放到图2中的“0009”文件夹中。求个自动化方法。
展开
3个回答
展开全部
不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
@echo off&cd /d "%~dp0"&mode con lines=5000
rem 根据给出的对应关系,从一个目录里查找出指定名称的文件,并拷贝/复制到另一个目录的指定子文件夹里
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "oldfolder=D:\大文件夹"
set "newfolder=I:\材料"
if not exist "%oldfolder%" (echo;"%oldfolder%" 未找到&pause&exit)
for /f "delims=:" %%a in ('type "%~f0"^|findstr /in "^exit$"') do set "last=%%a"
for /f "skip=%last% tokens=1* delims==" %%a in ('type "%~f0"') do (
for /f "delims=" %%c in ('dir /a-d-h/b/s "%oldfolder%\%%~b.*" 2^>nul') do (
echo;"%%~c" --^> "%oldfolder%\%%~a"
)
)
echo;%#% +%$%%$%/%_% %z%
pause
exit
0001=转征函【2016】1093号
0002=转征函[2017]1446号
0003=转征函[2015]1122号
0004=转征函[2017]1446号
0005=转征函[2017]1446号
0006=转征函[2012]846
0007=转征函[2015]1122号
追问
大神你好,按照上述方法做了,显示了过程(就是那个黑色运行框),但是结果各个文件夹里啥都没有,啥情况诶
追答
按运行代码后窗口标题栏中的提示联系我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
rem 注意:需要保存为批处理文件,如:c.bat
rem 用法:efi.txt(ANSI编码)中存储需要复制的文件及路径,每个文件一行,如:C:\BOOT\BCD
rem DD为目标文件夹,本例结果:c:\BCDBOOT\BOOT\BCD
rem 根据需要修改目标路径DD
set DD=c:\BCDBOOT
for /f %%i in (efi.txt) do (
pushd %%i 2>nul && (
echo %%~pi is 目录
md %DD%%%~pi
popd ) || (
md %DD%%%~pi
copy %%i %DD%%%~pnxi
)
rem 用法:efi.txt(ANSI编码)中存储需要复制的文件及路径,每个文件一行,如:C:\BOOT\BCD
rem DD为目标文件夹,本例结果:c:\BCDBOOT\BOOT\BCD
rem 根据需要修改目标路径DD
set DD=c:\BCDBOOT
for /f %%i in (efi.txt) do (
pushd %%i 2>nul && (
echo %%~pi is 目录
md %DD%%%~pi
popd ) || (
md %DD%%%~pi
copy %%i %DD%%%~pnxi
)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询