使用批处理拷贝指定文件名并复制到指定文件夹

【例子】:文件夹名1:0000011_20150224*****,文件夹中的文件:0000011_00000108_0000109.jpg,0000011_00000**... 【例子】:文件夹名1:0000011_20150224*****,文件夹中的文件:0000011_00000108_0000109.jpg,0000011_00000***_0000***.jpg,……
文件夹名2:0000012_20150224*****,文件夹中的文件:0000012_00000108_0000109.jpg,0000012_00000***_0000***.jpg,……
文件夹名3:0000011_20150225*****,文件夹中的文件:0000011_00000108_0000109.jpg,0000011_00000***_0000***.jpg ,……
文件夹名4:0000012_20150225*****,文件夹中的文件:0000012_00000108_0000109.jpg,0000012_00000***_0000***.jpg,……
【问题】:包含字符串“00000108_0000109”.jpg的文件拷贝到对应的文件夹,文件夹以日期命名。
【例子处理后的结果】新文件夹名1:20150224,包含的文件:0000011_00000108_0000109.jpg,0000012_00000108_0000109.jpg
新文件夹名2:20150225,包含的文件:0000011_00000108_0000109.jpg,0000012_00000108_0000109.jpg
文件夹的命名修正下:00-000_0000011_20150224*****。希望能再修正下
展开
 我来答
依梦琴瑶
高粉答主

推荐于2016-09-09 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
@echo off&setlocal EnableDelayedExpansion
for /f "tokens=1,* delims=_" %%a in ('dir/ad/b') do (
    set d=%%~b
    if defined d md !d:~,8!
    if exist "%%~a_%%~b" copy "%%~a_%%~b\*00000108_0000109.jpg" !d:~,8!\
)
pause

放在待处理文件夹同一目录下

更多追问追答
追问
非常感谢,没有问题。
能否再追加一个功能,可以设定日期期限的,由于文件夹和文件数量太多,全部处理一遍时间太长了。
追答
@echo off&setlocal EnableDelayedExpansion
for /f "tokens=1,* delims=_" %%a in ('dir/ad/b') do (
    set d=%%~b
    if defined d call:Process !d:~,8! "%%~a_%%~b"
)
pause
exit
goto :eof
:Process
::设置日期范围,逗号前为早日期,逗号后为晚日期
set DT=20150211,20150312
if %1 geq %DT:~,8% (
    if %1 leq %DT:~9% (
        md %1
        if exist %2 copy "%~2\*00000108_0000109.jpg" %1\
    )
)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式