Board logo

标题: [网络连接] 如何删除一个下载链接列表文件里的死链 [打印本页]

作者: dakkor    时间: 2011-4-6 10:03     标题: 如何删除一个下载链接列表文件里的死链

我有一个文本文件list.txt,里面有数千行网址,其中一些网址指向的目标文件已经404了,我想把死链行删掉,该如何写bat呢?可以使用第三方工具,curl啥的。谢谢。
作者: tmplinshi    时间: 2011-4-6 10:49

本帖最后由 tmplinshi 于 2011-4-6 11:26 编辑
  1. @echo off
  2. set file="list.txt"
  3. title 检查中...
  4. for /f %%n in ('find /v /c "" ^<%file%') do set total=%%n
  5. set .b=
  6. set /a current = 0, deleted = 0
  7. for /f "usebackq" %%u in (%file%) do call :Check404 "%%u"
  8. title 完成!%current%/%total% 已删除: %deleted%
  9. echo,
  10. echo 按任意键退出...
  11. pause >nul
  12. exit /b
  13. :Check404
  14. if not defined .b set .b=d >%file%
  15. set /a current += 1
  16. title 检查中... %current%/%total% 已删除: %deleted%
  17. set /p =%1<nul
  18. for /f "tokens=2" %%a in (' curl %1 -s -I -k') do (
  19.     if "%%a" neq "404" (
  20.         >>%file% echo %~1
  21.         echo     √
  22.     ) else (
  23.         echo     ×
  24.         set /a deleted += 1
  25.     )
  26.     goto :eof
  27. )
复制代码
下载 curl:

    CURL 7.21.4
    http://www.paehl.com/open_source/?download=curl_721_4.zip

    CURL 7.21.4 (支持 ssl)
    http://www.paehl.com/open_source/?download=curl_721_4_ssl.zip
    http://www.paehl.com/open_source/?download=libssl.zip

如果有 https 的网址,要用支持 ssl 的版本,并把 libssl.zip 里的 DLL 放到 curl.exe 目录。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2