【发布时间】:2017-10-27 02:45:25
【问题描述】:
在本地备份文件上传到 Azure 存储后尝试删除,得到以下错误:
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。
基本上,这可能很明显,但我想做的是检查备份 DIR 中的每个文件,如果它存在于 Azure 中,请将其删除,如果不存在,则继续上传步骤。如果需要,我可以分享我的其余代码。
解决方案更新:
感谢@OmegaMan,他为我指明了正确的道路,我得以解决我的问题。这是我现在正在使用的。它正确地循环通过 4 个“blob”并正确使用结果:
$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
}
}
【问题讨论】:
-
您在哪个 Windows build 上(在开始时输入“winver”)?
-
@tambre,这台机器正在运行 Server 2016 Datacenter(v1607,内部版本 14393.1770)。
-
可能是无用的信息,但是这台机器上的PS是:5.1.14393.1770。
标签: powershell azure azure-storage