标题: [文件操作] [已解决]批处理按日期提取文件夹内照片并命名和文件夹名字一致 [打印本页]
作者: 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 编辑
- @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- start mshta VBScript:Execute("msgbox(""%info%""):close")
- cd /d "%~dp0"
- set "一级文件夹=D:\test"
- powershell ^
- $ext=@('.png','.jpg');^
- $d=[datetime]'2019/4/11';^
- $folders=@(dir -liter '%一级文件夹%'^|?{$_ -is [System.IO.DirectoryInfo]});^
- for($i=0;$i -lt $folders.length;$i++){^
- $files=@(dir -liter $folders[$i].FullName -r^|?{($_ -is [System.IO.FileInfo]) -and ($ext -contains $_.Extension.toLower())});^
- for($j=0;$j -lt $files.length;$j++){^
- if($files[$j].LastWriteTime -gt $d){^
- $n=1;^
- $newfile='%一级文件夹%\'+$folders[$i].Name+$files[$j].Extension;^
- while(test-path -liter $newfile){^
- $newfile='%一级文件夹%\'+$folders[$i].Name+'_'+$n.toString()+$files[$j].Extension;^
- $n++;^
- };^
- write-host ('[复制]'+$files[$j].FullName+' --^> '+$newfile);^
- cp -liter $files[$j].FullName $newfile -force;^
- $n=1;$f=$false;^
- $newname=$folders[$i].Name+$files[$j].Extension;$newfile=$files[$j].Directory.FullName+'\'+$newname;^
- while(test-path -liter $newfile){^
- if($files[$j].Name -eq $newname){$f=$true;break};^
- $newname=$folders[$i].Name+'_'+$n.toString()+$files[$j].Extension;$newfile=$files[$j].Directory.FullName+'\'+$newname;^
- $n++;^
- };^
- if($f){continue;};^
- write-host ('[重命名]'+$files[$j].FullName+' --^> '+$newfile);^
- mv -liter $files[$j].FullName $newfile -force;^
- };^
- };^
- }
- pause
复制代码
作者: shaohua 时间: 2019-4-12 10:24
回复 4# zaqmlp
非常感谢,必须打赏!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |