接手以前别人做的项目,发现SVN里的ignore里并没有对*.db处理,导致图片的缓存缩略文件都被提交了,而我只要打开图片文件夹,就意味着Thumbs.db发生了改变。

要做的事情有两个:

一、更改svn的设置,以后不再提交Thumbs.db文件

二、批量删除指定目录下的Thumbs.db文件

所以用perl写了一个,代码是在之前的 perl遍历目录 做了一些修改,主要有两点自己注意了:

一、文件路径,Windows下默认为“\  ”而linux下则是”/”, 所以统一改为”/”

二、比较两个字符串相等需要使用eq 而不是 == (==返回数值相等,而eq返回的是字符串相等)

三、unlink删除文件,需要指定文件的完整路径

四、perl中的else if 写法为elsif 没有那个“e”

五、perl正则匹配方式为 =~ 或 !~

完整的代码如下,需要更改规则可以修改代码中的这一段

#!/usr/bin/perl
use strict;
use warnings;
 
my $path = "C:/FlexApp/xx";
my $filecount = 0;
 
sub parse_env {
     my $path = $_[0]; #或者使用 my($path) = @_; @_类似javascript中的arguments
     my $subpath;
     my $handle;
 
     if (-d $path) {#当前路径是否为一个目录
         if (opendir($handle, $path)) {
             while ($subpath = readdir($handle)) {
                 if (!($subpath =~ m/^\.$/) and !($subpath =~ m/^(\.\.)$/)) {
                     my $p = $path."/$subpath";
 
                     if (-d $p) {
                         parse_env($p);
                     } elsif ($subpath eq "Thumbs.db") {
                         ++$filecount;
                            print "The file path:".$p."------------The file name:$subpath\n";
                         unlink($p) or warn "failed on $subpath:$!";
                     }
                 }
             }
             closedir($handle);
         }
     }
 
     return $filecount;
}
 
my $count = parse_env $path;
my $str = "删除文件的总数:".$count;
 
print $str;

控制台上输出的结果:

转载于:https://www.cnblogs.com/meteoric_cry/archive/2011/02/28/1966780.html

perl删除Windows下的图片缓存缩略图(Thumbs.db)相关推荐

  1. 使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件、清除缓存文件、解救C盘、拒绝C盘爆炸

    使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件.清除缓存文件.解救C盘.拒绝C盘爆炸 目录

  2. 如何用DOS命令批量删除文件?(_desktop.ini 或 thumbs.db)

    如何用DOS命令批量删除文件?比如viking蠕虫病毒会在系统里产生大量的"_desktop.ini"文件,虽然杀毒后系统无问题了,但看着总归不爽.我们可使用DOS命令批量删除&q ...

  3. 15、如何在Linux和Windows下清除DNS缓存

    由于各种原因,您可能需要刷新或清除Linux系统上的本地DNS缓存. 如何清除/刷新Linux下的DNS缓存 默认情况下,操作系统级别没有安装或启用DNS缓存,但如果安装了下面列出的任何缓存服务,请使 ...

  4. php中perl配置,Windows下 Apache、PHP和Perl的安装配置

    在安装AWStats7.0和 JAWStats之前需要配置其环境,而运行AWStats需要perl支持,运行JAWStats需要PHP支持,这篇文章将具体介绍其环境的安装配置. 环境 Windows ...

  5. 删除windows下一些无法删除的文件夹

    Windows 下不能够以下面这些字样来命名文件/文件夹,包括:"aux""com1""com2""prn"" ...

  6. Windows下清理redis缓存

    Windows下清理某个redis库的所有数据 1.找到redis的安装目录 2.找到redis-cli.exe,双击运行 3.登录redis:输入命令:auth 密码 4.登录成功:当前默认为数据库 ...

  7. windows下sqlmap清除缓存记录

    有时候,我们需要使用sqlmap对某个站点进行多次sql注入测试,测试完一遍然后修复然后再测试.但是当sqlmap成功注入一遍后,你再次测试的时候sqlmap使用的还是原来的缓存记录,这样我们就不好判 ...

  8. 删除Windows下samba保存的用户名和密码

    当我们访问Windows共享目录或者NAS共享盘时,Windows会提示输入共享用户名和密码,这时如果我们选择了"记住我的凭据",Windows就会将认证凭证保存到计算机中,这样下 ...

  9. windows下刷新dns缓存

    #### 前言 内网dns已解析生效,但是本机访问域名,访问不了,需要刷新下本机dns #### 操作 ##### 查看dns参数 C:\Users\11079>ipconfig/all ``` ...

  10. Windows下安装图片标注工具LabelImg遇到的问题及解决办法

    个人用的是windows系统,由于在windows系统下采取了好几种的安装方案,本着个人的喜好,选择了第一种安装方法 由上图可以看到,其实安装方案也比较简单,自己仅需要安装两个包, pip insta ...

最新文章

  1. 2021年大数据Flink(四十二):​​​​​​​BroadcastState
  2. Go 语言编程 — go-swagger OpenAPI 工具
  3. java 之选择排序与冒号排序的详解
  4. java.lang.Class.getDeclaredMethod()方法详解
  5. python + opencv: kalman 跟踪
  6. oracle 11g rman catalog,Oracle 11g RMAN复制数据库的测试
  7. linux自动更新漏洞,Linux爆本地提权漏洞 请立即更新udev程序
  8. 【POJ3190】Stall Reservations
  9. Android webview上传图片(适配3.0,4.0,5.0,6.0)
  10. js 弹出提示信息,并跳转指定页面代码分享
  11. 《数据库原理MySQL》第三次上机实验
  12. html设置背景图片颜色,CSS设置背景图片及背景颜色示例
  13. 【时间之外】Chrome浏览器缓存解析
  14. 关于软件测试的英语面试题,软件测试工程师英语面试题
  15. 两轮差速机器人舵机转轴示意图_一种基于两轮差速机器人的运动控制方法与流程...
  16. 商品期货市场常见的量化交易策略
  17. 用A-priori算法实现frequent item set查找
  18. GitHub两天标星2.1K+!自动刷喵币靠这一个脚本就够了.....
  19. 阿里云服务器防止暴力破解设置
  20. iPhone手机数据找回指南2:iPhone手机使用技巧

热门文章

  1. VS学习笔记(一)创建C++项目
  2. CASS9.1计算土方量实例
  3. mysql case结合group+having使用
  4. Java并发编程实战读书笔记5 ---Executor在android中的应用
  5. Flink on Zeppelin (1) - 入门篇
  6. Apache Flink®生态所面临的机遇与挑战
  7. 面试字节跳动社招,我工资涨了60%,附带面经
  8. 在php定界符中,PHP中的定界符 - ho俊的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. 收银机打印数据截取_自助收银机大大节约了人力成本
  10. c++ idea 插件_IDEA的基本使用:让你的IDEA有飞一般的感觉