Schwierigkeiten beim Herunterladen von Skype über Powershell 2.0

369
Rhys Burrell

Ich habe Probleme mit einer Batch-Datei, die ich zum Herunterladen und Aktualisieren von Skype erstellt habe. Der Teil, der nicht funktioniert, ist der Teil, der Skype selbst herunterlädt. Die meisten Maschinen, die ich unterstütze, laufen mit Powershell 2.0, und es wäre schwierig, mindestens 3.0 zu erreichen

Nachfolgend finden Sie den von mir verwendeten Code:

powershell -Command "(New-Object Net.Webclient).DownloadFile('https://go.skype.com/skype.download', 'C:\Temp\Skype-Setup.exe')" 

Die Fehlermeldung, die ich im Befehlsfenster erhalte, lautet wie folgt:

Exception calling "DownloadFile" with "2" argument(s): "An exception occurred d uring a WebClient request." At line:1 char:40 + (New-Object Net.Webclient).DownloadFile <<<< ('https://go.skype.com/skype.dow nload', 'C:\Temp\Skype-Setup.exe') + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException 

Ich habe versucht, die Fehler separat zu googeln, konnte jedoch keine Ergebnisse finden. Jede Hilfe wäre sehr dankbar.

-1
Ich habe "Powershell 2.0 Download File" gegoogelt und der erste Link war https://stackoverflow.com/questions/31523709/downloading-files-with-powershell-2-0-on-windows-7 - Ist das Problem dadurch gelöst? Der von Ihnen bereitgestellte Code funktioniert übrigens in PS 5.1. Leider können Sie kein Upgrade durchführen. Dies sollte auch auf StackExchange gestellt werden, da dies eher eine Programmierfrage als eine Computersoftwarefrage ist. Andrew vor 5 Jahren 0
@reeves Powershell-Fragen sind hier zum Thema. Bitte schlagen Sie nicht vor, dass sie migriert werden sollten. DavidPostill vor 5 Jahren 0
@ DavidPostill Vielen Dank, dass Sie das geklärt haben. Ich habe die themenbezogenen Informationen des Hilfezentrums zu "Programmierung und Softwareentwicklung" falsch interpretiert. Andrew vor 5 Jahren 0
@ Reeves Kein Problem. Reine Programmierung ist nicht in Frage, aber Skripte (PS, VBA, cmd, bash usw.) sind Thema. DavidPostill vor 5 Jahren 0

1 Antwort auf die Frage

1
Rhys Burrell

Ich habe es herausgefunden, wenn das Verzeichnis, in dem es speichern möchte, nicht existiert, wird der DotNetMethodException-Fehler ausgegeben. Mein Powershell-Scripting war also in Ordnung, ich wusste einfach nicht, dass es kein Verzeichnis erstellen konnte. Mein Fehler.

Ich habe dies tatsächlich durch den Link herausgefunden, der oben veröffentlicht wurde, vielen Dank für all Ihre Hilfe :)

BEARBEITEN: Für alle, die sich fragen, ist der Code, den ich zur Behebung dieses Problems verwendet habe, unten aufgeführt.

IF exist C:\Temp\ ( echo Temp Exists ) ELSE ( mkdir C:\Temp\ && echo Temp Created )