旨在
- 通过powershell下载网站文件;
- 从文本文件的每一行获取名称;
- 支持UTF8(支持国际文本名称);
- & 将文件保存至同名目录中。
该脚本将应用于 20 多个文件夹,以节省繁琐的工作。
测试一:
Get-Content "C:\test\filename.txt" | ForEach-Object {Write-Host "http://Website_Address/$_.mp3" }
测试二
$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"
文件名.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 名称有效