标题: [文件操作] 利用bat搜索当前目录包括子目录里面所有*.art重命名的文件,并把旧的删除 [打印本页]
作者: chenxiumei 时间: 2019-3-19 14:05 标题: 利用bat搜索当前目录包括子目录里面所有*.art重命名的文件,并把旧的删除
请教大家一个问题,下面的功能如何能实现?先感谢大家了。
比如当前目录有
01_TOP.art
02_BOTTOM.art
03_PASTEMASK_TOP.art
05_PASTEMASK_BOTTOM.art
然后当前目录的其它文件夹也有
01_TOP.art
02_BOTTOM.art
03_PASTEMASK_TOP.art
05_PASTEMASK_BOTTOM.art
06_SOLDERMASK_TOP.ART
搜索出重命名的文件(art后缀的文件),把旧的(以文件建立的时间为准)删除,没有重命名的不用处理(比如06_SOLDERMASK_TOP.ART)
作者: xczxczxcz 时间: 2019-3-19 14:25
写PS就很方便,批处理太费神了。
作者: zaqmlp 时间: 2019-3-19 14:54
本帖最后由 zaqmlp 于 2019-3-19 17:23 编辑
- @echo off
- mode con lines=2000
- title 互助互利,扫码头像,感谢赞助;有问题,加QQ956535081及时沟通
- cd /d "%~dp0"
- powershell ^
- $dic=New-Object 'System.Collections.Generic.Dictionary[string,Object]';^
- dir . -include *.drl,*.art,*.rou -r^|?{$_ -is [System.IO.FileInfo]}^|%%{^
- $name=$_.Name.toLower();^
- if(-not $dic.ContainsKey($name)){^
- $dic.Add($name, $_);^
- }else{^
- if($_.LastWriteTime -le $dic[$name].LastWriteTime){^
- write-host ('['+$_.LastWriteTime.toString('yyyyMMddHHmmss.fff')+']'+$_.FullName);^
- del -liter $_.FullName -Force;^
- }else{^
- write-host ('['+$dic[$name].LastWriteTime.toString('yyyyMMddHHmmss.fff')+']'+$dic[$name].FullName);^
- del -liter $dic[$name].FullName -Force;^
- $dic[$name]=$_;^
- };^
- };^
- };
- pause
复制代码
作者: chenxiumei 时间: 2019-3-19 15:29
回复 3# zaqmlp
感谢大神,已经实现功能。非常完美。现在是*.art文件,那比如我加多 *.drl 和*.rou文件 呢?,在源代码上做什么修改。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |