2012年3月

这段时间在研究“QQ农场”和“美图秀秀”的Flash版工作原理,需要下载一些资源文件,若手动下载那上千个文件,可想而知是多么庞大的工作量。为了偷懒,写了一个小程序(CMD+PHP)实现批量下载。

下面分别给出CMD代码和PHP代码,至于所需的php.exe和wget.exe文件,请自行百度搜索下载。

parse.cmd

@echo off
rem xml-url-downloader
rem create by anrip.wong<mail@anrip.com>
cd /d %~dp0
echo. && echo 正在清理DAT目录...
if exist .\dat\ rd /s /q .\dat\
echo. && echo 正在分析XML文件...
.\bin\php.exe -n -q -f parse.php
echo. && echo 开始下载URL文件...
call .\dat\wget.bat
echo. && echo 操作完毕,按任意键退出...
pause >nul

parse.php

<?php
//xml-url-downloader
//create by anrip.wong<mail@anrip.com>
get_xml_url('xml/', 'dat/');
//获取XML内的URL,并生成BAT脚本
function get_xml_url($dir, $out) {
  $xml = glob($dir.'*.xml');
  $bat = "echo. && .\bin\wget.exe -xnv -P {$out}";
  is_dir($out) || mkdir($out, 0777, true);
  if(!empty($xml) && is_array($xml)) {
    foreach($xml as $xm) {
      preg_match_all('/url="(.*)"/U', file_get_contents($xm), $match);
      if(!empty($match[1])) {
        foreach($match[1] as $url) {
          $txt .= "{$bat} {$url} \r\n";
        }
      }
    }
    file_put_contents($out.'wget.bat', $txt);
  }
}
?>

今天清理一下系统,使用了一个命令行,可能对其他人有参考价值

dpkg -l | grep "^rc" | awk '{print $2}' | xargs aptitude -y purge

用途:
删除已经删除的软件包的残留配置文件。因为 debian 中 remove 包不删除配置文件,purge 才能清除,但根据依赖关系自动清除都是 remove,在加上自己失手操作,所以用得时间长了,难免残留很多没必要的配置文件,比较烦,于是有了上述操作。

说明:
1) dpkg -l
列出系统中安装的所有包的状态,ii 开头的是正常安装的包,rc 开头的则是删除但仍留下配置文件的包,其他状态则是有错误的状态,自己执行一次就明白了,输出结果的开头有说明的。
2) grep "^rc"
提取以 rc 开头的包,也就是被删除但仍残留配置文件的包的信息的行。
3) awk '{print $2}'
打印这些包的名字,他们位于 dpkg -l 输出结果的第二个字段,估计有很多人是通过这个命令认识到 awk 的,也有很多人只在这个命令行中才使用 awk,我就是其中之一。
4) xargs aptitude -y purge
把上述输出,也就是要清除配置文件的包的名字放在 aptitude -y purge 后面,purge命令会清除配置文件,而 -y 参数会自动对后面 aptitude 命令的提示回答是,这个开关通常是危险的,所以在一般情况下不要轻易使用,而在这里,如果你确定这些包的配置文件的清除是没有问题的的话,可以使用这个开关。