我第一次使用PowerShell执行一项小任务。我在磁盘上有一个文件文件,文件下载url links.Text文件有几行链接。我想下载到磁盘。我尝试使用以下代码。
$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++
}
但是我收到以下错误
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
文本文件中的链接
"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"
我应该如何在这里传递正确的论据
答案 0 :(得分:2)
您的文件中的网址似乎包含在"..."
中 - 实际双引号,当使用Get-Content
读取时,会成为文字读取的部分行 - 这不是意图(嵌入式 "
字符。在URL中不允许这样做,这解释了您看到的错误。)
要么:通过从每行中删除封闭的C:\Users\User\Desktop\filelinks.txt
实例来更新文件"
。
或者:在阅读"
行后删除封闭的Get-Content
个实例:
$fileurl = $fileurl -replace '^"(.*)"$', '$1'