fetch.cmd 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. @if (@CodeSection == @Batch) @then
  2. @echo off & setlocal
  3. @chcp 65001
  4. set URL=%1
  5. if not defined URL call :PRINT_USAGE&&goto:eof
  6. set FILTER=%~2
  7. if not defined FILTER set "FILTER=*"
  8. set DESTPATH=%~3
  9. if not defined DESTPATH set DESTPATH=%~dp0
  10. rem set "FILTER=himawari08_2017005_...._rgb_fd\.jpg"
  11. for /f "delims=" %%I in ('cscript /nologo /e:JScript "%~f0" "%URL%" "%FILTER%"') do (
  12. rem // do something useful with %%I
  13. set /a COUNTER+=1
  14. echo.
  15. echo !COUNTER!.%url%/%%I
  16. curl -f -o "%DESTPATH%\%%I" %URI%/%%I
  17. )
  18. pause
  19. :PRINT_USAGE
  20. echo:
  21. echo USAGE:
  22. echo %~n0 ^<url^> ^<pattern^> [destination_path]
  23. exit /b !ERRORLEVEL!
  24. goto :EOF
  25. @end // end batch / begin JScript hybrid code
  26. // returns a DOM root object
  27. function fetch(url) {
  28. var XHR = WSH.CreateObject("Microsoft.XMLHTTP"),
  29. DOM = WSH.CreateObject('htmlfile');
  30. XHR.open("GET", url, true);
  31. XHR.setRequestHeader('User-Agent','XMLHTTP/1.0' );
  32. XHR.send('');
  33. while (XHR.readyState!=4) { WSH.Sleep(25) };
  34. DOM.write('<meta http-equiv="x-ua-compatible" content="IE=9" />');
  35. DOM.write(XHR.responseText);
  36. return DOM;
  37. }
  38. var DOM = fetch(WSH.Arguments(0)),
  39. links = DOM.getElementsByTagName('a');
  40. var pattern = new RegExp(WSH.Arguments(1), i);
  41. for (var i in links)
  42. if (links[i].href && pattern.test(links[i].href)) WSH.Echo(links[i].pathname);