使用 Powershell 下载和保存文件时是否可以使用通配符?
Is there a way to use wildcards when downloading and saving a file using Powershell?
我有一个 PowerShell
脚本,我每天早上都用它从 URL 下载文件,但是它开始每天都在上面加上日期,因此无法使用每天预定 PowerShell
下载它。
是否可以使用通配符使其获取所有日期?
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile("https://test.com/store/scheduled/320%2019.10.22.csv","\server\shared\Reports\RawData\Cross Selling Data.csv")
粗体部分是我在“320”之后寻找通配符的内容,因为这是报告编号,但在 .csv 之前。我试过 * 但这似乎不起作用。日期在每天的报告中明显不同。
谈到使用通配符,答案是否。在发出 Web 请求时不可能使用通配符,因为它需要检查所有可能的路径。
如果您知道模式,则可以通过编程方式构建路径。例如,您的情况
# That input
PS> Get-Date -Format 'yy.MM.dd'
# Gives you the following result
19.10.22
这看起来与您在代码中包含的模式相似(我假设 %20
是 space)。要在字符串中使用它(假设您使用双引号 "
),您可以使用以下内容:
"https://test.com/store/scheduled/320%20$(Get-Date -Format 'yy.MM.dd').csv"
最后但并非最不重要的一点,因为 @Tomalak mentioned in comments, Invoke-WebRequest
也可能适合您。
我有一个 PowerShell
脚本,我每天早上都用它从 URL 下载文件,但是它开始每天都在上面加上日期,因此无法使用每天预定 PowerShell
下载它。
是否可以使用通配符使其获取所有日期?
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile("https://test.com/store/scheduled/320%2019.10.22.csv","\server\shared\Reports\RawData\Cross Selling Data.csv")
粗体部分是我在“320”之后寻找通配符的内容,因为这是报告编号,但在 .csv 之前。我试过 * 但这似乎不起作用。日期在每天的报告中明显不同。
谈到使用通配符,答案是否。在发出 Web 请求时不可能使用通配符,因为它需要检查所有可能的路径。
如果您知道模式,则可以通过编程方式构建路径。例如,您的情况
# That input
PS> Get-Date -Format 'yy.MM.dd'
# Gives you the following result
19.10.22
这看起来与您在代码中包含的模式相似(我假设 %20
是 space)。要在字符串中使用它(假设您使用双引号 "
),您可以使用以下内容:
"https://test.com/store/scheduled/320%20$(Get-Date -Format 'yy.MM.dd').csv"
最后但并非最不重要的一点,因为 @Tomalak mentioned in comments, Invoke-WebRequest
也可能适合您。