使用 Powershell 根据 UTF8 文本文件列表下载 Web 文件

使用 Powershell 根据 UTF8 文本文件列表下载 Web 文件

旨在

  • 通过powershell下载网站文件;
  • 从文本文件的每一行获取名称;
  • 支持UTF8(支持国际文本名称);
  • & 将文件保存至同名目录中。

该脚本将应用于 20 多个文件夹,以节省繁琐的工作。

测试一:

Get-Content "C:\test\filename.txt" | ForEach-Object {Write-Host "http://Website_Address/$_.mp3" }

Powershell 丝网印刷

测试二

$client = new-object System.Net.WebClient
$client.Encoding = [System.Text.Encoding]::UTF8
$client.DownloadFile("https://web.com/name.mp3","C:\test\name.mp3")

正确下载单个文件

测试三

Get-Content "C:\test\filename.txt" | ForEach-Object {
$client = new-object System.Net.WebClient
$client.Encoding = [System.Text.Encoding]::UTF8
$client.DownloadFile("https://web.com/'$_'.mp3","C:\test\'$_'.mp3")
 }
Clear-Variable -Name "client"

Powershell 错误 (出现错误 2 并且没有按预期保存,花了几个小时)

文件名.txt

11111
22222
33333
44444
55555
66666
77777
88888
99999

答案1

通过 Powershell 下载网站文件,使用支持 UTF8 的文本文件作为文件名。

  • 引号 '$' 围绕 $是导致脚本在第三次测试中失败的原因。
  • 这 2 个错误原来是文本文件中的 2 个空行。
  • 清除变量,我认为是不必要的,但是由于脚本编写的不同尝试,它就在那里。

最终解决方案

下载.ps1

Get-Content "C:\test\filename.txt" | ForEach-Object {
$client = new-object System.Net.WebClient
$client.Encoding = [System.Text.Encoding]::UTF8
$client.DownloadFile("https://webname.com/$_.mp3","C:\test\$_.mp3")
 }
Clear-Variable -Name "client"

正常运行

  • Powershell 运行正常,没有任何错误

下载的文件

  • 文件下载和异地测试表明 UTF8 名称有效

相关内容