Herunterladen der Windows-Batchdatei von einer URL

112

Ich versuche, eine Datei mit einer Windows-Batchdatei von einer Website (z. B. http://www.example.com/package.zip ) herunterzuladen . Ich erhalte einen Fehlercode, wenn ich die folgende Funktion schreibe:

xcopy /E /Y "http://www.example.com/package.zip"

Die Batch-Datei scheint das "/" nach dem http nicht zu mögen. Gibt es Möglichkeiten, diesen Zeichen zu entkommen, sodass nicht davon ausgegangen wird, dass es sich um Funktionsparameter handelt?

James
quelle
Hier: stackoverflow.com/questions/28143160/… Ich habe versucht, die Art und Weise fortzusetzen, wie eine Datei in Windows nur mit nativen Tools ohne Software von Drittanbietern heruntergeladen werden kann.
Npocmaka

Antworten:

135

Mit PowerShell 2.0 (Windows 7 vorinstalliert) können Sie Folgendes verwenden:

(New-Object Net.WebClient).DownloadFile('http://www.example.com/package.zip', 'package.zip')

Ab PowerShell 3.0 (Windows 8 vorinstalliert) können Sie Folgendes verwenden Invoke-WebRequest:

Invoke-WebRequest http://www.example.com/package.zip -OutFile package.zip

Aus einer Batch-Datei heißen sie:

powershell -Command "(New-Object Net.WebClient).DownloadFile('http://www.example.com/package.zip', 'package.zip')"
powershell -Command "Invoke-WebRequest http://www.example.com/package.zip -OutFile package.zip"

(PowerShell 2.0 kann unter XP, 3.0 für Windows 7 installiert werden.)

Sevenforce
quelle
2
Cool! Besser als bitsadmin.exe, da es nicht veraltet ist.
Sinelaw
@sevenforce, wird der Powershell 2.0 Befehl auch Arbeit in Powershell 3.0, oder haben Sie haben die Powershell 3.0 - Syntax benutzen?
Rich Signell
4
@RichSignell: Der 2.0-Befehl funktioniert auch in 3.0. Beim 2.0-Befehl ist mir übrigens aufgefallen, dass bei einem nicht absoluten Zielpfad die Datei relativ zum Home-Ordner des Benutzers gespeichert wird.
Sevenforce
1
Das ist großartig. Ich habe so lange danach gesucht. Danke dir! Funktioniert noch im Jahr 2017.
Albert MN.
2
Der 2.0-Code funktioniert für mich unter Win 7. Und da er auch ohne Erteilung von PowerShell-Administratorrechten funktioniert, ist dies ein perfekter Proof of Concept, bei dem das Klicken auf Unbekanntes .batund .ps1Dateien Ihre Daten wirklich vermasseln kann.
1934286
97

Es gibt eine Standard-Windows-Komponente, mit der Sie das erreichen können, was Sie versuchen: BITS . Es ist seit XP und 2000 SP3 in Windows enthalten.

Lauf:

bitsadmin.exe /transfer "JobName" http://download.url/here.exe C:\destination\here.exe

Der Jobname ist einfach der Anzeigename für den Download-Job - setzen Sie ihn auf etwas, das beschreibt, was Sie tun.

Hirnholz
quelle
14
Schönes Werkzeug! In win8 heißt es jedoch: "BITSAdmin ist veraltet und wird in zukünftigen Windows-Versionen nicht garantiert verfügbar sein. Verwaltungstools für den BITS-Dienst werden jetzt von BITS PowerShell-Cmdlets bereitgestellt."
Peteter
1
Wie bereits erwähnt, funktioniert bitsadmin nicht in automatischen Stapeln, die vom
Taskplaner ausgeführt werden
1
@cmroanirgo bitsadminist in Windows XP Home Edition nicht verfügbar.
Kaskadenstil
1
In Windows 10 Pro
Orwellophile
3
Danke dir! Funktionierte wie ein Zauber auf einem infizierten Computer, ohne dass eine andere Möglichkeit zum Herunterladen einer Datei aus dem Internet möglich war. (Sogar Powershell war unmöglich zu starten)
szab.kel
29

Dies mag ein wenig vom Thema abweichen, aber Sie können eine Datei mit Powershell ziemlich einfach herunterladen . Powershell wird mit modernen Windows-Versionen geliefert, sodass Sie keine zusätzlichen Dinge auf dem Computer installieren müssen. Ich habe es durch Lesen dieser Seite gelernt:

http://teusje.wordpress.com/2011/02/19/download-file-with-powershell/

Der Code war:

$webclient = New-Object System.Net.WebClient
$url = "http://www.example.com/file.txt"
$file = "$pwd\file.txt"
$webclient.DownloadFile($url,$file)
David Grayson
quelle
2
Wenn Sie diesen Blog durchsuchen, gibt es andere Powershell-Beispiele, die es mit der neuen PowerShell-Version 3.0
juFo
Ich glaube nicht, dass Sie SysteminSystem.Net.WebClient
1934286
25

Zuletzt habe ich überprüft, dass es keinen Befehlszeilenbefehl gibt, mit dem über die MS-Befehlszeile eine Verbindung zu einer URL hergestellt werden kann. Versuchen Sie es mit wget für Windows:
http://gnuwin32.sourceforge.net/packages/wget.htm

oder URL2File:
http://www.chami.com/free/url2file_wincon.html

Unter Linux können Sie "wget" verwenden.

Alternativ können Sie VBScript ausprobieren. Sie sind wie Befehlszeilenprogramme, aber sie sind Skripte, die vom Skript-Host wscript.exe interpretiert werden. Hier ist ein Beispiel für das Herunterladen einer Datei mit VBS:
/server/29707/download-file-from-vbscript

LostInTheCode
quelle
2
Sie benötigen weder wget noch eine Integration von Drittanbietern. BITS (Standard Windows Component seit XP) kann dies mit dem Dienstprogramm bitsadmin über die MS-Befehlszeile tun. Antwort gepostet - wenn auch etwas spät (2 Jahre hinterher?)
Brainwood
16

Herunterladen von Dateien in PURE BATCH ...

Ohne JScript, VBScript, Powershell usw. Nur reines Batch!

Einige Leute sagen, dass es nicht möglich ist, Dateien mit einem Batch-Skript herunterzuladen, ohne JScript oder VBScript usw. zu verwenden. Aber sie sind definitiv falsch!

Hier ist eine einfache Methode, die zum Herunterladen von Dateien in Ihren Batch-Skripten recht gut zu funktionieren scheint. Es sollte mit fast jeder Datei-URL funktionieren. Es ist sogar möglich, einen Proxyserver zu verwenden, wenn Sie ihn benötigen.

Zum Herunterladen von Dateien können wir BITSADMIN.EXE vom Windows-System verwenden. Es ist nicht erforderlich, etwas herunterzuladen / zu installieren oder JScript oder VBScript usw. zu verwenden. Bitsadmin.exe ist in den meisten Windows-Versionen vorhanden, wahrscheinlich von XP bis Windows 10.

Genießen!


VERWENDUNG:

Sie können den Befehl BITSADMIN wie folgt direkt verwenden:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND "http://example.com/File.zip" "C:\Downloads\File.zip"

Proxy - Server:
Für den Anschluss eines Proxy verwenden, verwenden Sie diesen Befehl vor dem Download.
bitsadmin /setproxysettings mydownloadjob OVERRIDE "proxy-server.com:8080" "<local>"

Klicken Sie auf diesen LINK, wenn Sie weitere Informationen zu BITSadmin.exe wünschen


FEHLERSUCHE:
Wenn die folgende Fehlermeldung angezeigt wird: "Verbindung zu BITS kann nicht hergestellt werden - 0x80070422" Stellen
Sie sicher, dass der Windows-Dienst "Background Intelligent Transfer Service (BITS)" aktiviert ist, und versuchen Sie es erneut. (Es sollte standardmäßig aktiviert sein.)


BENUTZERDEFINIERTE FUNKTIONEN
Call :DOWNLOAD_FILE "URL"
Call :DOWNLOAD_PROXY_ON "SERVER:PORT"
Call :DOWNLOAD_PROXY_OFF

Ich habe diese 3 Funktionen zur Vereinfachung der Bitsadmin-Befehle erstellt. Es ist einfacher zu bedienen und sich zu erinnern. Dies kann besonders nützlich sein, wenn Sie es mehrmals in Ihren Skripten verwenden.

BITTE
BEACHTEN SIE ... Bevor Sie diese Funktionen verwenden können, müssen Sie sie zuerst von CUSTOM_FUNCTIONS.CMD bis zum Ende Ihres Skripts kopieren. Es gibt auch ein vollständiges Beispiel: DOWNLOAD-EXAMPLE.CMD

: DOWNLOAD_FILE "URL"
Die Hauptfunktion lädt Dateien von der URL herunter.

: DOWNLOAD_PROXY_ON "SERVER: PORT"
(Optional) Sie können diese Funktion verwenden, wenn Sie einen Proxyserver benötigen.
Durch Aufrufen der Funktion: DOWNLOAD_PROXY_OFF wird der Proxyserver deaktiviert.

BEISPIEL:
CALL :DOWNLOAD_PROXY_ON "proxy-server.com:8080"
CALL :DOWNLOAD_FILE "http://example.com/File.zip" "C:\Downloads\File.zip"
CALL :DOWNLOAD_PROXY_OFF


CUSTOM_FUNCTIONS.CMD

:DOWNLOAD_FILE
    rem BITSADMIN COMMAND FOR DOWNLOADING FILES:
    bitsadmin /transfer mydownloadjob /download /priority FOREGROUND %1 %2
GOTO :EOF

:DOWNLOAD_PROXY_ON
    rem FUNCTION FOR USING A PROXY SERVER:
    bitsadmin /setproxysettings mydownloadjob OVERRIDE %1 "<local>"
GOTO :EOF

:DOWNLOAD_PROXY_OFF
    rem FUNCTION FOR STOP USING A PROXY SERVER:
    bitsadmin /setproxysettings mydownloadjob NO_PROXY
GOTO :EOF

DOWNLOAD-BEISPIEL.CMD

@ECHO OFF
SETLOCAL

rem FOR DOWNLOADING FILES, THIS SCRIPT IS USING THE "BITSADMIN.EXE" SYSTEM FILE.
rem IT IS PRESENT ON MOST WINDOWS VERSION, PROBABLY FROM WINDOWS XP TO WINDOWS 10.


:SETUP

rem URL (5MB TEST FILE):
SET "FILE_URL=http://ipv4.download.thinkbroadband.com/5MB.zip"

rem SAVE IN CUSTOM LOCATION:
rem SET "SAVING_TO=C:\Folder\5MB.zip"

rem SAVE IN THE CURRENT DIRECTORY
SET "SAVING_TO=5MB.zip"
SET "SAVING_TO=%~dp0%SAVING_TO%"

:MAIN

ECHO.
ECHO DOWNLOAD SCRIPT EXAMPLE
ECHO.
ECHO FILE URL: "%FILE_URL%"
ECHO SAVING TO:  "%SAVING_TO%"
ECHO.

rem UNCOMENT AND MODIFY THE NEXT LINE IF YOU NEED TO USE A PROXY SERVER:
rem CALL :DOWNLOAD_PROXY_ON "PROXY-SERVER.COM:8080"

rem THE MAIN DOWNLOAD COMMAND:
CALL :DOWNLOAD_FILE "%FILE_URL%" "%SAVING_TO%"

rem UNCOMMENT NEXT LINE FOR DISABLING THE PROXY (IF YOU USED IT):
rem CALL :DOWNLOAD_PROXY_OFF

:RESULT
ECHO.
IF EXIST "%SAVING_TO%" ECHO YOUR FILE HAS BEEN SUCCESSFULLY DOWNLOADED.
IF NOT EXIST "%SAVING_TO%" ECHO ERROR, YOUR FILE COULDN'T BE DOWNLOADED.
ECHO.

:EXIT_SCRIPT
PAUSE
EXIT /B




rem FUNCTIONS SECTION


:DOWNLOAD_FILE
    rem BITSADMIN COMMAND FOR DOWNLOADING FILES:
    bitsadmin /transfer mydownloadjob /download /priority FOREGROUND %1 %2
GOTO :EOF

:DOWNLOAD_PROXY_ON
    rem FUNCTION FOR USING A PROXY SERVER:
    bitsadmin /setproxysettings mydownloadjob OVERRIDE %1 "<local>"
GOTO :EOF

:DOWNLOAD_PROXY_OFF
    rem FUNCTION FOR STOP USING A PROXY SERVER:
    bitsadmin /setproxysettings mydownloadjob NO_PROXY
GOTO :EOF
Frank Einstein
quelle
1
Ich habe gerade meine Antwort aktualisiert ... Anscheinend war die Download-Geschwindigkeit wahnsinnig langsam, also habe ich den Parameter von "/ priority normal" in "/ priority foreground" geändert und das Problem behoben. Es sollte jetzt 100% Ihrer verfügbaren Bandbreite nutzen. (Statt ~ 5%)
Frank Einstein
11
' Create an HTTP object
myURL = "http://www.google.com"
Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )

' Download the specified URL
objHTTP.Open "GET", myURL, False
objHTTP.Send
intStatus = objHTTP.Status

If intStatus = 200 Then
  WScript.Echo " " & intStatus & " A OK " +myURL
Else
  WScript.Echo "OOPS" +myURL
End If

dann

C:\>cscript geturl.vbs
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.

200 A OK http://www.google.com

oder doppelklicken Sie einfach darauf, um in Windows zu testen

Kalpesh Soni
quelle
1
Dies wird nur in den Speicher heruntergeladen und noch nicht in eine Datei geschrieben. Überprüfen Sie diese Antwort zum Herunterladen in eine Datei: stackoverflow.com/a/2973344/977804
Daniel
5

AFAIK, Windows verfügt nicht über ein integriertes Befehlszeilentool zum Herunterladen einer Datei. Sie können dies jedoch aus einem VBScript heraus tun und die VBScript-Datei aus einem Stapel mithilfe von Echo und Ausgabeumleitung generieren:

@echo off

rem Windows has no built-in wget or curl, so generate a VBS script to do it:
rem -------------------------------------------------------------------------
set DLOAD_SCRIPT=download.vbs
echo Option Explicit                                                    >  %DLOAD_SCRIPT%
echo Dim args, http, fileSystem, adoStream, url, target, status         >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo Set args = Wscript.Arguments                                       >> %DLOAD_SCRIPT%
echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1")              >> %DLOAD_SCRIPT%
echo url = args(0)                                                      >> %DLOAD_SCRIPT%
echo target = args(1)                                                   >> %DLOAD_SCRIPT%
echo WScript.Echo "Getting '" ^& target ^& "' from '" ^& url ^& "'..."  >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo http.Open "GET", url, False                                        >> %DLOAD_SCRIPT%
echo http.Send                                                          >> %DLOAD_SCRIPT%
echo status = http.Status                                               >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo If status ^<^> 200 Then                                            >> %DLOAD_SCRIPT%
echo    WScript.Echo "FAILED to download: HTTP Status " ^& status       >> %DLOAD_SCRIPT%
echo    WScript.Quit 1                                                  >> %DLOAD_SCRIPT%
echo End If                                                             >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo Set adoStream = CreateObject("ADODB.Stream")                       >> %DLOAD_SCRIPT%
echo adoStream.Open                                                     >> %DLOAD_SCRIPT%
echo adoStream.Type = 1                                                 >> %DLOAD_SCRIPT%
echo adoStream.Write http.ResponseBody                                  >> %DLOAD_SCRIPT%
echo adoStream.Position = 0                                             >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo Set fileSystem = CreateObject("Scripting.FileSystemObject")        >> %DLOAD_SCRIPT%
echo If fileSystem.FileExists(target) Then fileSystem.DeleteFile target >> %DLOAD_SCRIPT%
echo adoStream.SaveToFile target                                        >> %DLOAD_SCRIPT%
echo adoStream.Close                                                    >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
rem -------------------------------------------------------------------------

cscript //Nologo %DLOAD_SCRIPT% http://example.com targetPathAndFile.html

Mehr Erklärung hier

Abszisse
quelle
Gibt es einen Grund, dies nicht in einer separaten Datei zu tun und einfach die VBScript-Datei aus dem Stapel aufzurufen? Dies wird ein schreckliches Durcheinander sein, wenn Sie es jemals bearbeiten müssen.
seadoggie01
4
  1. Laden Sie Wget von hier herunter http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe

  2. Dann installieren Sie es.

  3. Dann machen Sie eine .bat-Datei und legen Sie diese hinein

    @echo off
    
    for /F "tokens=2,3,4 delims=/ " %%i in ('date/t') do set y=%%k
    for /F "tokens=2,3,4 delims=/ " %%i in ('date/t') do set d=%%k%%i%%j
    for /F "tokens=5-8 delims=:. " %%i in ('echo.^| time ^| find "current" ') do set t=%%i%%j
    set t=%t%_
    if "%t:~3,1%"=="_" set t=0%t%
    set t=%t:~0,4%
    set "theFilename=%d%%t%"
    echo %theFilename%
    
    
    cd "C:\Program Files\GnuWin32\bin"
    wget.exe --output-document C:\backup\file_%theFilename%.zip http://someurl/file.zip
    
  4. Passen Sie die URL und den Dateipfad im Skript an

  5. Führen Sie die Datei aus und profitieren Sie!
Boksiora
quelle
3

Sie können xcopy nicht über http verwenden. Versuchen Sie, wget für Windows herunterzuladen. Das kann den Trick machen. Es ist ein Befehlszeilenprogramm zum nicht interaktiven Herunterladen von Dateien über http. Sie erhalten es unter http://gnuwin32.sourceforge.net/packages/wget.htm

Matt Wrock
quelle
3

Wenn Bitsadmin nicht Ihre Tasse Tee ist, können Sie diesen PowerShell-Befehl verwenden:

Start-BitsTransfer -Source http://www.foo.com/package.zip -Destination C:\somedir\package.zip
Trinitrotoluol
quelle
Ich möchte .exe herunterladen und ich habe auch diesen Code verwendet und nicht funktioniert. Kann ich .exe mit Batch-Skript herunterladen?
MAS. John
3

Verwenden Sie Bat To Exe Converter

Erstellen Sie eine Batch-Datei und fügen Sie so etwas wie den folgenden Code ein

%extd% /download http://www.examplesite.com/file.zip file.zip

oder

%extd% /download http://stackoverflow.com/questions/4619088/windows-batch-file-file-download-from-a-url thistopic.html

und konvertiere es in exe.

kentucky absch
quelle
3

Anstelle von wget können Sie auch aria2 verwenden, um die Datei von einer bestimmten URL herunterzuladen.

Siehe den folgenden Link, der mehr über aria2 erklärt:

https://aria2.github.io/

Sasikumar
quelle
+1 für die Erwähnung dieses Tools, das ich noch nicht kannte. Schade, dass es Probleme mit HTTPS gibt, wie es wget getan hat (ich habe noch keinen Weg gefunden, eine CA-Kette
einzurichten
2

BATCH ist möglicherweise nicht in der Lage, dies zu tun, aber Sie können JScript oder VBScript verwenden, wenn Sie keine Tools verwenden möchten, die nicht standardmäßig unter Windows installiert sind.

Das erste Beispiel auf dieser Seite lädt eine Binärdatei in VBScript herunter: http://www.robvanderwoude.com/vbstech_internet_download.php

Diese SO-Antwort lädt eine Datei mit JScript (IMO, die bessere Sprache) herunter : Windows Script Host (jscript): Wie lade ich eine Binärdatei herunter?

Ihr Batch-Skript kann dann einfach ein JScript oder VBScript aufrufen, das die Datei herunterlädt.

aikeru
quelle
2

Dies sollte funktionieren. Ich habe Folgendes für ein Game-Server-Projekt getan. Es wird die Zip-Datei herunterladen und in das von Ihnen angegebene Verzeichnis extrahieren.

Speichern Sie als name.bat oder name.cmd

@echo off
set downloadurl=http://media.steampowered.com/installer/steamcmd.zip
set downloadpath=C:\steamcmd\steamcmd.zip
set directory=C:\steamcmd\
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -Command "& {Import-Module BitsTransfer;Start-BitsTransfer '%downloadurl%' '%downloadpath%';$shell = new-object -com shell.application;$zip = $shell.NameSpace('%downloadpath%');foreach($item in $zip.items()){$shell.Namespace('%directory%').copyhere($item);};remove-item '%downloadpath%';}"
echo download complete and extracted to the directory.
pause

Original: https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver/blob/master/steam.cmd

C0nw0nk
quelle
Ich möchte .exe herunterladen und ich habe diesen Code verwendet und nicht funktioniert. Kann ich .exe mit Batch-Skript herunterladen?
MAS. John
1

Ich habe dieses VB-Skript gefunden:

http://www.olafrv.com/?p=385

Klappt wunderbar. Als Funktion mit einem sehr einfachen Funktionsaufruf konfiguriert:

SaveWebBinary "http://server/file1.ext1", "C:/file2.ext2"

Ursprünglich von: http://www.ericphelps.com/scripting/samples/BinaryDownload/index.htm

Hier ist der vollständige Code für Redundanz:

Function SaveWebBinary(strUrl, strFile) 'As Boolean
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Const ForWriting = 2
Dim web, varByteArray, strData, strBuffer, lngCounter, ado
    On Error Resume Next
    'Download the file with any available object
    Err.Clear
    Set web = Nothing
    Set web = CreateObject("WinHttp.WinHttpRequest.5.1")
    If web Is Nothing Then Set web = CreateObject("WinHttp.WinHttpRequest")
    If web Is Nothing Then Set web = CreateObject("MSXML2.ServerXMLHTTP")
    If web Is Nothing Then Set web = CreateObject("Microsoft.XMLHTTP")
    web.Open "GET", strURL, False
    web.Send
    If Err.Number <> 0 Then
        SaveWebBinary = False
        Set web = Nothing
        Exit Function
    End If
    If web.Status <> "200" Then
        SaveWebBinary = False
        Set web = Nothing
        Exit Function
    End If
    varByteArray = web.ResponseBody
    Set web = Nothing
    'Now save the file with any available method
    On Error Resume Next
    Set ado = Nothing
    Set ado = CreateObject("ADODB.Stream")
    If ado Is Nothing Then
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set ts = fs.OpenTextFile(strFile, ForWriting, True)
        strData = ""
        strBuffer = ""
        For lngCounter = 0 to UBound(varByteArray)
            ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1)))
        Next
        ts.Close
    Else
        ado.Type = adTypeBinary
        ado.Open
        ado.Write varByteArray
        ado.SaveToFile strFile, adSaveCreateOverWrite
        ado.Close
    End If
    SaveWebBinary = True
End Function
Strandhaus
quelle
1

Diese Frage hat eine sehr gute Antwort in hier . Mein Code basiert ausschließlich auf dieser Antwort mit einigen Änderungen.

Speichern Sie das folgende Snippet als wget.bat und fügen Sie es in Ihren Systempfad ein (z. B. legen Sie es in einem Verzeichnis ab und fügen Sie dieses Verzeichnis dem Systempfad hinzu.)

Sie können es in Ihrem Cli wie folgt verwenden:

wget url/to/file [?custom_name]

wo url_to_fileist obligatorisch und custom_nameist optional

  1. Wenn kein Name angegeben wird, wird die heruntergeladene Datei unter ihrem eigenen Namen aus der URL gespeichert.
  2. Wenn der Name angegeben wird, wird die Datei unter dem neuen Namen gespeichert.

Die Datei-URL und die gespeicherten Dateinamen werden in ansifarbenem Text angezeigt. Wenn dies für Sie ein Problem darstellt, überprüfen Sie dieses Github-Projekt.

@echo OFF
setLocal EnableDelayedExpansion
set Url=%1
set Url=!Url:http://=!
set Url=!Url:/=,!
set Url=!Url:%%20=?!
set Url=!Url: =?!

call :LOOP !Url!

set FileName=%2
if "%2"=="" set FileName=!FN!

echo.
echo.Downloading: [1;33m%1[0m to [1;33m\!FileName![0m

powershell.exe -Command wget %1 -OutFile !FileName!

goto :EOF
:LOOP
if "%1"=="" goto :EOF
set FN=%1
set FN=!FN:?= !
shift
goto :LOOP

PS Für diesen Code muss PowerShell installiert sein.

Bantya
quelle
1

Sie können eine geplante Aufgabe mit wget einrichten. Verwenden Sie das Feld "Ausführen" in der geplanten Aufgabe als:

C:\wget\wget.exe -q -O nul "http://www.google.com/shedule.me"
lv10
quelle
1

Unter Windows gibt es ein Dienstprogramm (befindet sich bei CMD), das über CMD ausgeführt werden kann (wenn Sie Schreibzugriff haben):

set url=https://www.nsa.org/content/hl-images/2017/02/09/NSA.jpg
set file=file.jpg
certutil -urlcache -split -f %url% %file%
echo Done.

Eingebaute Windows-Anwendung. Keine externen Downloads erforderlich.

Getestet auf Win 10

Zimba
quelle
-3

benutze ftp:

(ftp *yourewebsite.com*-a)
cd *directory*
get *filename.doc*
close

Ändern Sie alles in Sternchen, um es Ihrer Situation anzupassen.

Kirill Shilov
quelle
Sicherlich abhängig von dem Server, auf dem sich die Datei befindet, um FTP zu unterstützen.
PnP
Questin ist http verwandt, nicht ftp
Ben