找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22603|回复: 4

[文件操作] [已解决]批处理按日期提取文件夹内照片并命名和文件夹名字一致

[复制链接]
发表于 2019-4-11 20:21:49 | 显示全部楼层 |阅读模式
如何通过日期(比如:2019/4/11之后)提取一级文件下,二级文件夹内的照片(说明:二级文件夹内可能含有三级、四级文件夹,图片位置不定),并更改该照片名字和二级文件夹名字一致,然后复制该图片放在一级文件夹下。图片格式为.png或.jpg其中一种格式。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2019-4-11 20:56:56 | 显示全部楼层
什么日期呀
 楼主| 发表于 2019-4-11 21:18:44 | 显示全部楼层
回复 2# zaqmlp
比如今天是2019/4/11 从这个日期之后的照片
发表于 2019-4-11 22:05:14 | 显示全部楼层
本帖最后由 zaqmlp 于 2019-4-12 10:04 编辑
  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. start mshta VBScript:Execute("msgbox(""%info%""):close")
  6. cd /d "%~dp0"
  7. set "一级文件夹=D:\test"
  8. powershell ^
  9.     $ext=@('.png','.jpg');^
  10.     $d=[datetime]'2019/4/11';^
  11.     $folders=@(dir -liter '%一级文件夹%'^|?{$_ -is [System.IO.DirectoryInfo]});^
  12.     for($i=0;$i -lt $folders.length;$i++){^
  13.         $files=@(dir -liter $folders[$i].FullName -r^|?{($_ -is [System.IO.FileInfo]) -and ($ext -contains $_.Extension.toLower())});^
  14.         for($j=0;$j -lt $files.length;$j++){^
  15.             if($files[$j].LastWriteTime -gt $d){^
  16.                 $n=1;^
  17.                 $newfile='%一级文件夹%\'+$folders[$i].Name+$files[$j].Extension;^
  18.                 while(test-path -liter $newfile){^
  19.                     $newfile='%一级文件夹%\'+$folders[$i].Name+'_'+$n.toString()+$files[$j].Extension;^
  20.                     $n++;^
  21.                 };^
  22.                 write-host ('[复制]'+$files[$j].FullName+' --^> '+$newfile);^
  23.                 cp -liter $files[$j].FullName $newfile -force;^
  24.                 $n=1;$f=$false;^
  25.                 $newname=$folders[$i].Name+$files[$j].Extension;$newfile=$files[$j].Directory.FullName+'\'+$newname;^
  26.                 while(test-path -liter $newfile){^
  27.                     if($files[$j].Name -eq $newname){$f=$true;break};^
  28.                     $newname=$folders[$i].Name+'_'+$n.toString()+$files[$j].Extension;$newfile=$files[$j].Directory.FullName+'\'+$newname;^
  29.                     $n++;^
  30.                 };^
  31.                 if($f){continue;};^
  32.                 write-host ('[重命名]'+$files[$j].FullName+' --^> '+$newfile);^
  33.                 mv -liter $files[$j].FullName $newfile -force;^
  34.             };^
  35.         };^
  36.     }
  37. pause
复制代码
 楼主| 发表于 2019-4-12 10:24:36 | 显示全部楼层
回复 4# zaqmlp
非常感谢,必须打赏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 02:05 , Processed in 0.018808 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表