2017-04-18 5 views
2

Ich verwende PowerShell zum ersten Mal für eine kleine Aufgabe. Ich habe eine Textdatei auf der Festplatte mit Datei-Download-URL Links. Text-Datei hat mehrere Links Zeile für Zeile. Ich möchte auf die Festplatte herunterladen. Ich habe versucht, den folgenden Code zu verwenden.

$filepath = "C:\Users\User\Desktop\filelinks.txt" 
$files = Get-Content $filepath 
$i=0 

foreach($fileurl in $files){ 
$webclient = New-Object System.Net.WebClient 
$file = "C:\Users\User\Desktop\"+$i+".csv" 
$webclient.DownloadFile($fileurl,$file) 
$i++ 
} 

aber ich bekomme die folgende Fehler

Exception calling "DownloadFile" with "2" argument(s): "Illegal characters in path." 
At line:8 char:1 
+ $webclient.DownloadFile($fileurl,$file) 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
+ FullyQualifiedErrorId : ArgumentException 

Die Links in Textdatei

"http://www.football-data.co.uk/mmz4281/1617/I1.csv" 
"http://www.football-data.co.uk/mmz4281/1617/E1.csv" 
"http://www.football-data.co.uk/mmz4281/1617/E2.csv" 
"http://www.football-data.co.uk/mmz4281/1617/SP1.csv" 
"http://www.football-data.co.uk/mmz4281/1617/D1.csv" 

Wie soll ich hier die richtigen Argumente übergeben

Antwort

2

Es sieht aus wie die URLs in Ihrer Datei sind in "..." enthalten - a Ctual doppelte Anführungszeichen, die, wenn mit Get-Content gelesen, werden ein Literal Teil der Zeilen lesen - was nicht die Absicht ist (eingebettet" Zeichen. sind in URLs nicht erlaubt, was den Fehler erklärt, den Sie gesehen haben).

  • Entweder: Update-Datei C:\Users\User\Desktop\filelinks.txt durch die umschließende " Instanzen aus jeder Zeile zu entfernen.

  • Oder: Entfernen Sie die umschließenden " Instanzen nach den Zeilen mit Get-Content gelesen zu haben:

    • $fileurl = $fileurl -replace '^"(.*)"$', '$1'
Verwandte Themen