perl删除Windows下的图片缓存缩略图(Thumbs.db)
接手以前别人做的项目,发现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)相关推荐
- 使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件、清除缓存文件、解救C盘、拒绝C盘爆炸
使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件.清除缓存文件.解救C盘.拒绝C盘爆炸 目录
- 如何用DOS命令批量删除文件?(_desktop.ini 或 thumbs.db)
如何用DOS命令批量删除文件?比如viking蠕虫病毒会在系统里产生大量的"_desktop.ini"文件,虽然杀毒后系统无问题了,但看着总归不爽.我们可使用DOS命令批量删除&q ...
- 15、如何在Linux和Windows下清除DNS缓存
由于各种原因,您可能需要刷新或清除Linux系统上的本地DNS缓存. 如何清除/刷新Linux下的DNS缓存 默认情况下,操作系统级别没有安装或启用DNS缓存,但如果安装了下面列出的任何缓存服务,请使 ...
- php中perl配置,Windows下 Apache、PHP和Perl的安装配置
在安装AWStats7.0和 JAWStats之前需要配置其环境,而运行AWStats需要perl支持,运行JAWStats需要PHP支持,这篇文章将具体介绍其环境的安装配置. 环境 Windows ...
- 删除windows下一些无法删除的文件夹
Windows 下不能够以下面这些字样来命名文件/文件夹,包括:"aux""com1""com2""prn"" ...
- Windows下清理redis缓存
Windows下清理某个redis库的所有数据 1.找到redis的安装目录 2.找到redis-cli.exe,双击运行 3.登录redis:输入命令:auth 密码 4.登录成功:当前默认为数据库 ...
- windows下sqlmap清除缓存记录
有时候,我们需要使用sqlmap对某个站点进行多次sql注入测试,测试完一遍然后修复然后再测试.但是当sqlmap成功注入一遍后,你再次测试的时候sqlmap使用的还是原来的缓存记录,这样我们就不好判 ...
- 删除Windows下samba保存的用户名和密码
当我们访问Windows共享目录或者NAS共享盘时,Windows会提示输入共享用户名和密码,这时如果我们选择了"记住我的凭据",Windows就会将认证凭证保存到计算机中,这样下 ...
- windows下刷新dns缓存
#### 前言 内网dns已解析生效,但是本机访问域名,访问不了,需要刷新下本机dns #### 操作 ##### 查看dns参数 C:\Users\11079>ipconfig/all ``` ...
- Windows下安装图片标注工具LabelImg遇到的问题及解决办法
个人用的是windows系统,由于在windows系统下采取了好几种的安装方案,本着个人的喜好,选择了第一种安装方法 由上图可以看到,其实安装方案也比较简单,自己仅需要安装两个包, pip insta ...
最新文章
- 2021年大数据Flink(四十二):​​​​​​​BroadcastState
- Go 语言编程 — go-swagger OpenAPI 工具
- java 之选择排序与冒号排序的详解
- java.lang.Class.getDeclaredMethod()方法详解
- python + opencv: kalman 跟踪
- oracle 11g rman catalog,Oracle 11g RMAN复制数据库的测试
- linux自动更新漏洞,Linux爆本地提权漏洞 请立即更新udev程序
- 【POJ3190】Stall Reservations
- Android webview上传图片(适配3.0,4.0,5.0,6.0)
- js 弹出提示信息,并跳转指定页面代码分享
- 《数据库原理MySQL》第三次上机实验
- html设置背景图片颜色,CSS设置背景图片及背景颜色示例
- 【时间之外】Chrome浏览器缓存解析
- 关于软件测试的英语面试题,软件测试工程师英语面试题
- 两轮差速机器人舵机转轴示意图_一种基于两轮差速机器人的运动控制方法与流程...
- 商品期货市场常见的量化交易策略
- 用A-priori算法实现frequent item set查找
- GitHub两天标星2.1K+!自动刷喵币靠这一个脚本就够了.....
- 阿里云服务器防止暴力破解设置
- iPhone手机数据找回指南2:iPhone手机使用技巧
热门文章
- VS学习笔记(一)创建C++项目
- CASS9.1计算土方量实例
- mysql case结合group+having使用
- Java并发编程实战读书笔记5 ---Executor在android中的应用
- Flink on Zeppelin (1) - 入门篇
- Apache Flink®生态所面临的机遇与挑战
- 面试字节跳动社招,我工资涨了60%,附带面经
- 在php定界符中,PHP中的定界符 - ho俊的个人空间 - OSCHINA - 中文开源技术交流社区...
- 收银机打印数据截取_自助收银机大大节约了人力成本
- c++ idea 插件_IDEA的基本使用:让你的IDEA有飞一般的感觉