Win7中集成了壁纸自动换的功能,赞一个先。话说有一天本人从VeryCD下载了一个壁纸包,1000多张全是游戏壁纸,直接设置为自动更换。很多很漂亮的壁纸,不过也有一些不喜欢的。难道一个个删除,OMG。或者等Win7切换到自己不喜欢的壁纸时再去删除,1000多张啊,找死人了。遂起了贼心,写了个脚本,直接删除当前使用的壁纸。
脚本文件(DeleteWallpaper.js)
//设置部分
//用户名,当前系统登录用户名
var userName = "wilford" ;
//包含壁纸的文件夹
var folders = new Array ();
folders . push ("F://宽屏壁纸" );
var fso = new ActiveXObject ("Scripting.FileSystemObject" );
var f1 = fso . GetFile ("D://Users//" + userName + "//AppData//Roaming//Microsoft//Windows//Themes//TranscodedWallpaper.jpg" );
var fileDelNum = 0 ;
var fileDel = "" ;
for ( i = 0 ; i < folders . length ; i ++ )
{
var folder = fso . GetFolder (folders [ i ]);
var iter = new Enumerator (folder . files );
for (; ! iter . atEnd (); iter . moveNext () )
{
var file = iter . item ();
if (f1 . size == file . size )
{
fileDelNum ++;
fileDel += file . Path + "/r/n" ;
file . Delete ();
}
}
}
var dt = new Date ();
var log = "-----" + dt . toLocaleString () + " 删除文件" + fileDelNum + "个" + "-----/r/n" ;
log += fileDel ;
log += "/r/n" ;
//将日志记录到文件
logFile = fso . OpenTextFile ( "DeleteWallpaper.log" , 8 , true );
logFile . Write ( log );
logFile . Close ();
WScript . Echo ( log );
再方便一点,可以建个快捷方式,放到开始菜单里,再设上快捷键。
目前还有两个缺点:
1.这个方法是使用文件大小来判断是否是同一个文件。虽然两张图片的文件大小完全一样的几率并不高,但这毕竟不是一个可靠的方法。谨慎一点可以考虑MD5,或者逐字节对比。
2.这个方法只对JPG格式的文件有效,其他格式如PNG,Windows在拷贝过去后会转换为JPG,这样文件大小就不同了。要解决这个问题,貌似只能从图像的层面去对比了。这个属于比较高深的技术,本人没有研究过。