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

[文件操作] 利用bat搜索当前目录包括子目录里面所有*.art重命名的文件,并把旧的删除

[复制链接]
发表于 2019-3-19 14:05:47 | 显示全部楼层 |阅读模式
请教大家一个问题,下面的功能如何能实现?先感谢大家了。
比如当前目录有
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)
发表于 2019-3-19 14:25:21 | 显示全部楼层
写PS就很方便,批处理太费神了。
发表于 2019-3-19 14:54:59 | 显示全部楼层
本帖最后由 zaqmlp 于 2019-3-19 17:23 编辑
  1. @echo off
  2. mode con lines=2000
  3. title 互助互利,扫码头像,感谢赞助;有问题,加QQ956535081及时沟通
  4. cd /d "%~dp0"
  5. powershell ^
  6.     $dic=New-Object 'System.Collections.Generic.Dictionary[string,Object]';^
  7.     dir . -include *.drl,*.art,*.rou -r^|?{$_ -is [System.IO.FileInfo]}^|%%{^
  8.         $name=$_.Name.toLower();^
  9.         if(-not $dic.ContainsKey($name)){^
  10.             $dic.Add($name, $_);^
  11.         }else{^
  12.             if($_.LastWriteTime -le $dic[$name].LastWriteTime){^
  13.                 write-host ('['+$_.LastWriteTime.toString('yyyyMMddHHmmss.fff')+']'+$_.FullName);^
  14.                 del -liter $_.FullName -Force;^
  15.             }else{^
  16.                 write-host ('['+$dic[$name].LastWriteTime.toString('yyyyMMddHHmmss.fff')+']'+$dic[$name].FullName);^
  17.                 del -liter $dic[$name].FullName -Force;^
  18.                 $dic[$name]=$_;^
  19.             };^
  20.         };^
  21.     };
  22. pause
复制代码
 楼主| 发表于 2019-3-19 15:29:41 | 显示全部楼层
回复 3# zaqmlp

感谢大神,已经实现功能。非常完美。现在是*.art文件,那比如我加多  *.drl 和*.rou文件 呢?,在源代码上做什么修改。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 03:29 , Processed in 0.030224 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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