You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell从URL批量下载未知文件名的日志文件

PowerShell批量下载指定格式的日志文件

如果目标URL对应的HTTP服务器支持目录索引(浏览器访问能看到文件列表),可以按以下步骤批量下载符合plus_yyMMddHHmmss.csv格式的日志文件:

1. 获取目录下的目标文件名列表

先用Invoke-WebRequest抓取目录页面内容,再通过正则匹配筛选出符合格式的文件名:

# 替换为你的目标日志目录URL
$targetDirUrl = "http://your-server.com/log-folder/"

# 获取目录页面内容
$pageContent = Invoke-WebRequest -Uri $targetDirUrl

# 匹配符合格式的文件名:plus_后面跟12位数字(yymmddhhmmss),后缀.csv
$targetFiles = $pageContent.Links | Where-Object {
    $_.href -match 'plus_\d{12}\.csv'
} | Select-Object -ExpandProperty href

2. 批量下载文件

循环筛选出的文件名,拼接完整下载URL,保存到本地指定路径:

# 替换为你的本地保存路径
$localSavePath = "C:\LocalLogs\"

# 确保保存目录存在
if (-not (Test-Path $localSavePath)) {
    New-Item -Path $localSavePath -ItemType Directory | Out-Null
}

# 逐个下载文件
foreach ($file in $targetFiles) {
    $fullDownloadUrl = $targetDirUrl.TrimEnd('/') + '/' + $file
    $localFilePath = Join-Path -Path $localSavePath -ChildPath $file

    try {
        # 用Invoke-WebRequest下载,或者换成Start-BitsTransfer(支持断点续传)
        Invoke-WebRequest -Uri $fullDownloadUrl -OutFile $localFilePath
        Write-Host "已下载: $file"
    }
    catch {
        Write-Host "下载失败 $file : $_"
    }
}

注意事项

  • 如果目标服务器不提供目录列表,你需要确认是否有API接口可以获取文件列表,或者改用FTP/SFTP协议(对应可使用WinSCP模块或原生FTP命令)。
  • 若要限定下载某一天的文件,可修改正则表达式,比如只下载22年9月19日的文件:plus_220919\d{6}\.csv

内容的提问来源于stack exchange,提问作者mikeyb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:50:28