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

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

如何通过日期(比如:2019/4/11之后)提取一级文件下,二级文件夹内的照片(说明:二级文件夹内可能含有三级、四级文件夹,图片位置不定),并更改该照片名字和二级文件夹名字一致,然后复制该图片放在一级文件夹下。图片格式为.png或.jpg其中一种格式。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

什么日期呀
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 2# zaqmlp
比如今天是2019/4/11 从这个日期之后的照片

TOP

本帖最后由 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
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 4# zaqmlp
非常感谢,必须打赏!

TOP

返回列表