Perl实现删除Windows下的图片缓存缩略图Thumbs.db

 更新时间:2020年6月29日 13:42  点击:1787

接手以前别人做的项目,发现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;

控制台上输出的结果:

[!--infotagslink--]

相关文章

  • Windows VPN服务器配置图文教程 超详细版

    VPN可以虚拟出一个专用网络,让远处的计算机和你相当于处在同一个局域网中,而中间的数据也可以实现加密传输,用处很大,特别是在一些大公司,分公司处在不同的区域。...2016-01-27
  • Windows批量搜索并复制/剪切文件的批处理程序实例

    这篇文章主要介绍了Windows批量搜索并复制/剪切文件的批处理程序实例,需要的朋友可以参考下...2020-06-30
  • C#创建简单windows窗体应用(加法器)

    这篇文章主要为大家详细介绍了C#创建一个简单windows窗体应用的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • Powershell 查询 Windows 日志的方法

    这篇文章主要介绍了Powershell 查询 Windows 日志的方法,需要的朋友可以参考下...2020-06-30
  • C#实现windows form限制文本框输入的方法

    这篇文章主要介绍了C#实现windows form限制文本框输入的方法,涉及C#限制文本框输入的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • Perl模块编写说明

    这两天在用Perl编写一些监控脚本,其实写代码也是一件挺有意思的事情,就是挺废时间的。而且,由于语法不太熟,基本想到一个东西都要先Google一下看怎么实现。...2020-06-29
  • Perl与JS的对比分析(数组、哈希)

    下面小编就为大家带来一篇Perl与JS的对比分析(数组、哈希)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-29
  • JS实现不使用图片仿Windows右键菜单效果代码

    本文实例讲述了JS实现不使用图片仿Windows右键菜单效果代码。分享给大家供大家参考,具体如下:这里演示JS不使用图片仿Windows右键菜单效果,这款代码灵活使用了文鼎字,配合CSS和JS做出了这个和系统右键菜单很相似的东东。...2015-10-23
  • C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法

    这篇文章主要介绍了C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法,结合实例形式分析了GetDesktopWindow函数用于获取窗口句柄的具体使用方法与相关注意事项,需要的朋友可以参考下...2020-06-25
  • perl 模式匹配参数详解

    一、简介 模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即模式def。其用法如结合函数split将字符串用某模式分成多个单词:@array = split(/ /, $line);二、匹配...2020-06-29
  • Linux与Windows喜结连理

    作为一个新生事物,Linux吸引了不少眼球,但是它能否快捷、方便地与Windows资源共享,是一个很重要的问题。大家知道,Windows之间可以利用“网络邻居”来实现资源共享,而Linux...2016-11-25
  • 利用C#修改Windows操作系统时间

    这篇文章主要介绍了利用C#修改Windows操作系统时间,帮助大家更好的利用c#操作系统,感兴趣的朋友可以了解下...2020-12-08
  • 详解Windows下安装Nodejs步骤

    本篇文章主要介绍了详解Windows下安装Nodejs步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...2017-05-22
  • Perl localtime时间函数的应用介绍

    Perl时间函数localtime的使用介绍,这里简单的介绍下,更多请查看官方介绍...2020-06-29
  • C#3.0使用EventLog类写Windows事件日志的方法

    这篇文章主要介绍了C#3.0使用EventLog类写Windows事件日志的方法,以简单实例形式分析了C#写windows事件日志的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Perl中的特殊内置变量详细介绍

    这篇文章主要介绍了Perl中的特殊内置变量详细介绍,需要的朋友可以参考下...2020-06-29
  • 讲Perl中的本地时间与UNIX时间戳间相互转换的方法

    这篇文章主要介绍了讲Perl中的本地时间与UNIX时间戳间相互转换的方法,主要用到了Perl中的Date::Parse模块,需要的朋友可以参考下...2020-06-29
  • perl 列表和数组变量详解

    一、列表 列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:()。 注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同...2020-06-29
  • Perl 批量添加Copyright版权信息

    对所有输入文件,如果没有版权信息则加上版权信息,否则什么都不做,并对原文件以.bak结尾备份,需要的朋友可以参考下...2020-06-29
  • Perl学习笔记之CPAN使用介绍

    这篇文章主要介绍了Perl学习笔记之CPAN使用介绍,本文讲解了什么是CPAN、CPAN的目录作用介绍、CPAN安装Perl Module的两种方法等内容,需要的朋友可以参考下...2020-06-29