Batch file to download files

Discussion forum for all Windows batch related topics.

Moderator: DosItHelp

Post Reply
Message
Author
Rafhack
Posts: 19
Joined: 23 Feb 2014 15:02

Batch file to download files

#1 Post by Rafhack » 01 Sep 2014 00:34

Code: Select all

@echo off
set /p "url=URL: "
set /p "localFile=Local file: "
call:download "%url%" "%localFile%"
exit/b
:Download
(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)>HackGet.txt
certutil -decode HackGet.txt HackGet.cab 1>nul
expand -R HackGet.cab 1>nul
del HackGet.cab&echo Downloading...
HackGet "%~1" "%~2"
echo/Done
del HackGet.exe&pause>nul
exit/b


It generates a compressed file called HackGet.cab, expands it then executes HackGet.exe.

npocmaka_
Posts: 512
Joined: 24 Jun 2013 17:10
Location: Bulgaria
Contact:

Re: Batch file to download files

#2 Post by npocmaka_ » 01 Sep 2014 12:53

But I can't see the HackGet content..

here two attempts from my side


1.Using BITSADMIN (not avaialble for XP home edition) that I've written back in 2009 ... :


Code: Select all

    @echo off
    setlocal
   :download
   
    if "%2" equ "" (
      call :help
      exit /b 5
   )
   
   if "%1" equ "" (
      call :help
      exit /b 6
   )
    set url=%~1
    set file=%~2
    rem ----
    if "%~3" NEQ "" (
        set /A timeout=%~3
    ) else (
        set timeout=5
    )

    bitsadmin /cancel download >nul
    bitsadmin /create /download download >nul
    call bitsadmin /addfile download "%url%" "%CD%\%file%" >nul
    bitsadmin /resume download >nul
    bitsadmin /setproxysettings download AUTODETECT >nul

    set /a attempts=0
    :repeat
    set /a attempts +=1
    if "%attempts%" EQU "10" (
        echo TIMED OUT
        endlocal
        exit /b 1
    )
    bitsadmin /info download /verbose | find  "STATE: ERROR"  >nul 2>&1 && endlocal &&  bitsadmin /cancel download && echo SOME KIND OF ERROR && exit /b 2
    bitsadmin /info download /verbose | find  "STATE: SUSPENDED" >nul 2>&1 && endlocal &&  bitsadmin /cancel download &&echo FILE WAS NOT ADDED && exit /b 3
    bitsadmin /info download /verbose | find  "STATE: TRANSIENT_ERROR" >nul 2>&1 && endlocal &&  bitsadmin /cancel download &&echo TRANSIENT ERROR && exit /b 4
    bitsadmin /info download /verbose | find  "STATE: TRANSFERRED" >nul 2>&1 && goto :finishing
   
   w32tm /stripchart /computer:localhost /period:1 /dataonly /samples:%timeout%  >nul 2>&1
    goto :repeat
    :finishing
    bitsadmin /complete download >nul
    echo download finished
    endlocal
   goto :eof
   
   :help
   echo %~n0 url file [timeout]
   echo.
   echo  url - the source for download
   echo  file - file name in local directory where the file will be stored
   echo  timeout - number in seconds between each check if download is complete (attempts are 10)
   echo.
   goto :eof



2. jscript.net/.bat hybrid :

Code: Select all

@if (@X)==(@Y) @end /****** jscript comment ******

@echo off
::::::::::::::::::::::::::::::::::::
:::       compile the script    ::::
::::::::::::::::::::::::::::::::::::
setlocal
if exist simpledownloader.exe goto :skip_compilation

set "frm=%SystemRoot%\Microsoft.NET\Framework\"
:: searching the latest installed .net framework
for /f "tokens=* delims=" %%v in ('dir /b /s /a:d /o:-n "%SystemRoot%\Microsoft.NET\Framework\v*"') do (
    if exist "%%v\jsc.exe" (
        rem :: the javascript.net compiler
        set "jsc=%%~dpsnfxv\jsc.exe"
        goto :break_loop
    )
)
echo jsc.exe not found && exit /b 0
:break_loop


call %jsc% /nologo /out:"simpledownloader.exe" "%~dpsfnx0"
::::::::::::::::::::::::::::::::::::
:::       end of compilation    ::::
::::::::::::::::::::::::::::::::::::
:skip_compilation

:: download the file


::
::::::::::
 simpledownloader.exe "%~1" "%~2"
::::::::
::

exit /b 0


****** end of jscript comment ******/

import System;
var arguments:String[] = Environment.GetCommandLineArgs();
var webClient:System.Net.WebClient = new System.Net.WebClient();
print("Downloading " + arguments[1] + " to " + arguments[2]);
try {
    webClient.DownloadFile(arguments[1], arguments[2]);
} catch (e) {

        Console.BackgroundColor = ConsoleColor.Green;
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine("\n\nProblem with downloading " + arguments[1] + " to " + arguments[2] + "Check if the internet address is valid");
        Console.ResetColor();
        Environment.Exit(5);
}



despite .net framework has more advanced methods for file downloading...

some other things worth checking -> https://code.google.com/p/curlie/ (incomplete) implentation of cURL with jscript
devcon download -> http://www.robvanderwoude.com/autodownload.php

Post Reply