gpt4 book ai didi

azure - 从 azure blob 下载文件名中带有日期的文件,无论日期之前的名称如何

转载 作者:行者123 更新时间:2023-12-03 03:42:24 27 4
gpt4 key购买 nike

我正在运行此脚本,下载文件名中包含日期的文件,但没有输出或错误。

$container_name = 'xxxxx'
$destination_path = 'xyxyxyx'
$DateRef = (Get-Date)
$Ctx = New-AzStorageContext $vcvcv -StorageAccountKey $cdkhcks=
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Get-AzStorageBlob -Context $Ctx -Container $container_name | Where {
$_.BaseName -match '\d{4}_\d{2}_\d{2}' -and [datetime]::ParseExact(([regex]::Match($_.BaseName,'\d{4}_\d{2}_\d{2}').Value),'yyyy_MM_dd',$null) -le $DateRef } |
Foreach-Object {
Get-AzStorageBlobContent -Context $Ctx -Container $container_name -Destination $destination_path
}

有人可以帮我吗?我需要一个脚本,该脚本应该搜索文件名中的日期并与当前日期匹配并下载它。例如,如果我有 qwe_24122021,ert_24122021,它必须下载这两个文件。

最佳答案

继续我的评论,您的代码中有一些错误:

  • 如果文件名的格式为 qwe_24122021.txt 等,则这些文件中的日期部分的格式为 ddMMyyyy
  • 要从此名称中获取日期时间,您需要使用 $_.BaseName,'(\d{8})$').Value不是 $_.BaseName,'\d{4}_\d{2}_\d{2}' 因为这看起来根本不像使用的格式..
  • 我认为您的代码没有获得正确的 Context 对象

我自己无法测试这个,但请尝试:

$null = [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

$container_name = 'xxxxx'
$destination_path = 'xyxyxyx'
$DateRef = (Get-Date).Date
$Ctx = New-AzStorageContext -StorageAccountName 'YOUR ACCOUNT NAME HERE' -StorageAccountKey 'YOUR KEY HERE'

Get-AzStorageBlob -Context $Ctx -Container $container_name |
Where-Object {
$_.BaseName -match '_(\d{8})$' -and
[datetime]::ParseExact(([regex]::Match($_.BaseName,'(\d{8})$').Value),'ddMMyyyy',$null) -eq $DateRef
} |
Foreach-Object {
Get-AzStorageBlobContent -Container $container_name -Blob $_.Name -Destination $destination_path
}

关于azure - 从 azure blob 下载文件名中带有日期的文件,无论日期之前的名称如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70471299/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com