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

如何用PowerShell每月自动下载含年月命名的网页文件?

PowerShell 每月自动下载带日期变量的文件

我需要一个PowerShell任务,每月从网站下载文件。该文件名包含月份和年份,因此URL中需要使用变量或表达式。我测试了以下固定文件名的代码并可正常运行,但文件名每月会变化:

Invoke-WebRequest https://download.cms.gov/nppes/NPPES_Data_Dissemination_April_2024.zip -OutFile C:\Data\NPPES_Data_Dissemination_April_2024.zip

我有一个可自动调整日期的表达式,但不确定能否在PowerShell中使用,该表达式如下:

"https://download.cms.gov/nppes/NPPES_Data_Dissemination_"+ (MONTH(getdate()) == 1 ? "Jan" :
MONTH(getdate()) == 2 ? "Feb" :
MONTH(getdate()) == 3 ? "Mar" :
MONTH(getdate()) == 4 ? "April" :
MONTH(getdate()) == 5 ? "May" :
MONTH(getdate()) == 6 ? "Jun" :
MONTH(getdate()) == 7 ? "Jul" :
MONTH(getdate()) == 8 ? "Aug" :
MONTH(getdate()) == 9 ? "Sep" :
MONTH(getdate()) == 10 ? "Oct" :
MONTH(getdate()) == 11 ? "Nov" :
MONTH(getdate()) == 12? "Dec":"")) + "_"+ (DT_WSTR,4)DATEPART("YEAR",GETDATE()) + ".zip"

解决方案

PowerShell里可以直接用Get-Date的格式化功能,替代复杂的条件判断,实现更简洁可靠:

# 处理月份名称:四月用全称"April",其他月份用缩写
$currentDate = Get-Date
$monthName = if ($currentDate.Month -eq 4) { "April" } else { $currentDate.ToString("MMM") }
$year = $currentDate.Year

# 拼接URL和输出文件路径
$url = "https://download.cms.gov/nppes/NPPES_Data_Dissemination_${monthName}_${year}.zip"
$outFile = "C:\Data\NPPES_Data_Dissemination_${monthName}_${year}.zip"

# 执行下载
Invoke-WebRequest -Uri $url -OutFile $outFile

特殊场景调整

如果需要每月下载上个月的文件(比如每月1号获取上月数据),只需修改日期获取逻辑:

$lastMonth = (Get-Date).AddMonths(-1)
$monthName = if ($lastMonth.Month -eq 4) { "April" } else { $lastMonth.ToString("MMM") }
$year = $lastMonth.Year

$url = "https://download.cms.gov/nppes/NPPES_Data_Dissemination_${monthName}_${year}.zip"
$outFile = "C:\Data\NPPES_Data_Dissemination_${monthName}_${year}.zip"

Invoke-WebRequest -Uri $url -OutFile $outFile

定时执行设置

把脚本保存为.ps1文件后,通过Windows任务计划程序创建定时任务:

  • 触发器设为每月指定日期(比如每月1号)
  • 操作选择「启动程序」,程序/脚本填powershell.exe,参数填-ExecutionPolicy Bypass -File "C:\你的脚本路径\文件名.ps1"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:43:17