[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 如何删除一个下载链接列表文件里的死链

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

本帖最后由 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 目录。

TOP

返回列表