使用 Powershell 从 Web 下载文件名中包含日期 Month_Year 的文件

问题描述 投票:0回答:1

我需要一个 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。这样的东西可以与 Powershell 一起使用吗?

"https://download.cms.gov/nppesNPPES_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
1个回答
0
投票

这样就可以了...如果没有以英语返回值,你可能需要调查 get-culture。

我还发现月份命名有时是 3 个或更多字母。不太一致,但在网站端不受您的控制。

"https://download.cms.gov/nppesNPPES_Data_Dissemination_"+ `
(Get-Culture).DateTimeFormat.GetMonthName((Get-Date).Month) + "_"+ `
(Get-Date).Year + `
".zip"
© www.soinside.com 2019 - 2024. All rights reserved.