试图在上传到Azure存储后删除本地备份文件,会出现以下错误:
为什么它要查找C:\Windows*blahblah*?
如果我将变量$AzureDir打印到屏幕上,我会看到所有的blob。
基本上,很明显,我想做的是检查备份目录中的每个文件,如果它存在于Azure中,则删除它,否则继续上传步骤。如果需要,我可以分享我的代码的其余部分。
解决方案更新:
感谢@OmegaMan指引我走向正确的方向,我已经解决了问题。这就是我现在正在使用的。它正常循环处理4个'blobs',并正确使用结果:
运行以下代码时出现这种情况:Get-ChildItem : 无法找到路径'C:\Windows\system32\Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageBlob',因为该路径不存在。
$BackupDir= 'C:\BackupDir'
$AzureDir= Get-AzureStorageBlob -Context $context -Container $containername -blob $file.name
Get-ChildItem $AzureDir | ForEach-Object
{
$FileInBackup= $AzureDir + $_.Name
If (Test-Path $FileInBackup) {Remove-Item $FileInBackup}
}
为什么它要查找C:\Windows*blahblah*?
如果我将变量$AzureDir打印到屏幕上,我会看到所有的blob。
基本上,很明显,我想做的是检查备份目录中的每个文件,如果它存在于Azure中,则删除它,否则继续上传步骤。如果需要,我可以分享我的代码的其余部分。
解决方案更新:
感谢@OmegaMan指引我走向正确的方向,我已经解决了问题。这就是我现在正在使用的。它正常循环处理4个'blobs',并正确使用结果:
$BackupDir = 'C:\BackupDir'
$AzureFiles = Get-AzureStorageBlob -Context $context -Container $containername -blob *.name
foreach ($AzureFile in $AzureFiles)
{
$FileInBackup = $AzureFile.name
If (Test-Path $BackupDir\$FileInBackup)
{
Remove-Item $FileInBackup
}
}