0

我正在尝试使用 Powershell 将 .CSV 文件转换为 .ZIP,然后将 ZIP 文件存储在 Azure blob 存储中。

Invoke-Sqlcmd -ServerInstance $SvrName -Database $dataname -Username $UserName -Password $Password -Query $getTABLEdetails | Export-CSV $filename1 -Append -NoTypeInformation

使用上述命令,我将输出存储在 .CSV 文件中。现在我想将 .CSV 文件转换为 .ZIP 文件。并将 ZIP 文件存储在 Azure blob 存储中。

$context = New-AzureStorageContext -StorageAccountName 'Accountname' -StorageAccountKey 'storagekey'
Set-AzureStorageBlobContent -Container zipfiles -File $filename1 -Blob $filename1 -Context $context -Force 

使用上述命令,我可以将其存储在 .CSV 文件中。但我想以 .ZIP 格式存储文件。

他们有什么办法可以做到这一点吗?

请帮忙

4

1 回答 1

1

用于Compress-Archive在上传到 Blob 存储之前将 CSV 文件放在 ZIP 存档文件中。

要从 CSV 文件中提取文件名,我使用-LeafBasefrom Split-Path,然后使用 . 将此文件名格式化为 ZIP 文件路径Format operator -f。也可以只与(Split-Path -Path $csvFile -LeafBase) + '.zip'.

$storageAccountName = 'Accountname'
$storageAccountKey = 'storagekey'
$containerName = 'zipfiles'

$csvFile = 'data.csv'

# Format into data.zip
$zipFile = '{0}.zip' -f (Split-Path -Path $csvFile -LeafBase)

# Create archive file
# Use -Update to overwrite if necessary
Compress-Archive -Path $csvFile -DestinationPath $zipFile -Update

# Get current storage account context
$context = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey

# Upload .zip file to Blob storage container
# Use -Force to skip prompts
Set-AzureStorageBlobContent -Container $containerName -Blob $zipFile -File $zipFile -Context $context -Force

要使用较新的 Az 模块,我们可以New-AzureStorageContextNew-AzStorageContextSet-AzureStorageBlobContent替换Set-AzStorageBlobContent

于 2020-05-20T01:13:46.407 回答