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?
windows
batch-file
download
scripting
James
quelle
quelle
Antworten:
Mit PowerShell 2.0 (Windows 7 vorinstalliert) können Sie Folgendes verwenden:
Ab PowerShell 3.0 (Windows 8 vorinstalliert) können Sie Folgendes verwenden
Invoke-WebRequest
:Aus einer Batch-Datei heißen sie:
(PowerShell 2.0 kann unter XP, 3.0 für Windows 7 installiert werden.)
quelle
.bat
und.ps1
Dateien Ihre Daten wirklich vermasseln kann.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:
Der Jobname ist einfach der Anzeigename für den Download-Job - setzen Sie ihn auf etwas, das beschreibt, was Sie tun.
quelle
bitsadmin
ist in Windows XP Home Edition nicht verfügbar.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:
quelle
System
inSystem.Net.WebClient
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
quelle
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-BEISPIEL.CMD
quelle
dann
oder doppelklicken Sie einfach darauf, um in Windows zu testen
quelle
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:
Mehr Erklärung hier
quelle
Laden Sie Wget von hier herunter http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe
Dann installieren Sie es.
Dann machen Sie eine .bat-Datei und legen Sie diese hinein
Passen Sie die URL und den Dateipfad im Skript an
quelle
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
quelle
Wenn Bitsadmin nicht Ihre Tasse Tee ist, können Sie diesen PowerShell-Befehl verwenden:
quelle
Verwenden Sie Bat To Exe Converter
Erstellen Sie eine Batch-Datei und fügen Sie so etwas wie den folgenden Code ein
oder
und konvertiere es in exe.
quelle
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/
quelle
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.
quelle
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
Original: https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver/blob/master/steam.cmd
quelle
Ich habe dieses VB-Skript gefunden:
http://www.olafrv.com/?p=385
Klappt wunderbar. Als Funktion mit einem sehr einfachen Funktionsaufruf konfiguriert:
Ursprünglich von: http://www.ericphelps.com/scripting/samples/BinaryDownload/index.htm
Hier ist der vollständige Code für Redundanz:
quelle
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_file
ist obligatorisch undcustom_name
ist optionalDie 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.
PS Für diesen Code muss PowerShell installiert sein.
quelle
Sie können eine geplante Aufgabe mit wget einrichten. Verwenden Sie das Feld "Ausführen" in der geplanten Aufgabe als:
quelle
Unter Windows gibt es ein Dienstprogramm (befindet sich bei CMD), das über CMD ausgeführt werden kann (wenn Sie Schreibzugriff haben):
Eingebaute Windows-Anwendung. Keine externen Downloads erforderlich.
Getestet auf Win 10
quelle
benutze ftp:
Ändern Sie alles in Sternchen, um es Ihrer Situation anzupassen.
quelle