Wie lädst du Dateien von Github über Batch herunter?

649
user473470

Also mache ich einen "Assistenten", der vollständig auf der Befehlszeile basiert. Ich habe vor kurzem beschlossen, von Hosting-Dateien auf One-Laufwerk zu GitHub zu wechseln. Ich hatte tiny.cc-Links erstellt, so dass es einfach wäre, die endgültige URL zu ändern, ohne die Batch-Datei selbst ändern zu müssen.

Sobald ich jedoch meine tiny.cc-URLs auf GitHub auf meine Dateien umleitete, bekam ich Fehler. Ich habe benutztpowershell -Command Invoke-WebRequest http://tiny.cc/sanchitaiexdown -OutFile C:\Users\%USERNAME%\ai\exdown.exe

Und es kam mit dem Fehler, dass SSL / TLS Secure Channel nicht erstellt werden konnte. Nach einiger Recherche stellte ich fest, dass ich diesen Befehl zuvor verwenden musste.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 

Das Problem dabei war, dass es nicht im Stapel laufen konnte (ich möchte im Stapel bleiben). Also habe ich BitsAdmin ausprobiert und es ist mir auch nicht gelungen.

Gibt es einen Weg, wie ich das in BATCH zum Laufen bringen kann? Mir geht es gut, wenn ein externes Exe benötigt wird, aber es kann nur eine Befehlszeile sein und es ist keine Installation erforderlich.

Vielen Dank

2
Ihre verkürzte URL ist nicht https, GitHub unterstützt nur sichere Verbindungen. Es ist nicht sinnvoll, zu erklären, dass Sie TLS 1.0+ unterstützen, wenn Sie keine https-Verbindung verwenden. Ramhound vor 6 Jahren 0
Ich würde `[Net.ServicePointManager] :: SecurityProtocol =" tls12, tls11, tls "` und dann den Befehl 'Invoke-WebRequest' ausführen, aber Sie können beide über Batch mit einem Batch-Skript ausführen. Pimp Juice IT vor 6 Jahren 0
@Ramhound Der tiny.cc-Link ist http, aber der Link, zu dem er geht, ist https. user473470 vor 6 Jahren 0
@PimpJuiceIT Ich habe es gerade ausprobiert und bin auf einen Fehler gestoßen. Ich habe auch die orignal Befehle in Powershell ausprobiert und sie funktionieren, aber im Batch machen sie das nicht und ich möchte mit Batch bleiben. user473470 vor 6 Jahren 0

1 Antwort auf die Frage

1
Pimp Juice IT

Sie können die PowerShell- Befehle stapelweise ausführen, indem Sie die PowerShell- Logik mithilfe des Befehls echo in ein dynamisch erstelltes PowerShell- Skript einfügen. Anschließend kann das PowerShell- Skript ausgeführt werden, um die Logik auszuführen und wie es im folgenden Beispiel erforderlich ist.


Skriptbeispiel

@ECHO ON  :PowerShell SET PSScript=%temp%\~tmpDlFile.ps1 IF EXIST "%PSScript%" DEL /Q /F "%PSScript%" ECHO [Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls">>"%PSScript%" ECHO Invoke-WebRequest "http://tiny.cc/sanchitaiexdown" -OutFile "C:\Users\%USERNAME%\ai\exdown.exe">>"%PSScript%"  SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0 CD /D "%PowerShellDir%" Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'" EXIT 

Weitere Ressourcen

Danke, ich habe @ECHO gerade abgeschaltet, um das Skript sauber aussehen zu lassen. user473470 vor 6 Jahren 0
@ user473470 Das ist nur eine Angewohnheit von mir, bei der ich gerne alles Echo sehen würde .... Ich bin froh, dass es für Ihre Bedürfnisse funktioniert hat !! Pimp Juice IT vor 6 Jahren 0