Board logo

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

作者: shaohua    时间: 2019-4-11 20:21     标题: [已解决]批处理按日期提取文件夹内照片并命名和文件夹名字一致

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

什么日期呀
作者: shaohua    时间: 2019-4-11 21:18

回复 2# zaqmlp
比如今天是2019/4/11 从这个日期之后的照片
作者: zaqmlp    时间: 2019-4-11 22:05

本帖最后由 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
复制代码

作者: shaohua    时间: 2019-4-12 10:24

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




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2