Powershell:创建 Az 副本到 blob 容器日志文件或详细

Posted

技术标签:

【中文标题】Powershell:创建 Az 副本到 blob 容器日志文件或详细【英文标题】:Powershell: Create Az copy to the blob Container log file or verbose 【发布时间】:2021-07-05 14:58:35 【问题描述】:

您好,我是 powershell 新手,我在复制 c:files root/folder/files 下面有一个 powershell 脚本

$StorageAccountKey=" "
$sourceFileRootDirectory=" "
$StorageAccountName=" "
$ContainerName=" "
$ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey 
$StorageAccountKey
$container = Get-AzureStorageContainer -Name $ContainerName -Context $ctx

if ($container) 
    $filesToUpload = Get-ChildItem $sourceFileRootDirectory -Recurse -File

    foreach ($x in $filesToUpload) 
        $blobName = ($x.fullname.Substring($x.PSDrive.Root.Length)).Replace("\", "/")

 Set-AzureStorageBlobContent -File $x.fullname -Container $container.Name -Blob $blobName - 
 Context $ctx -Force:$Force 
    

我目前遇到的问题是,当我在存储 blob 中运行脚本时,会抓取创建的完整路径

\Users\Glen\Desktop\democontainer\(然后是里面的任何东西)

我怎样才能修剪,以便它抓住根文件夹,不包括 \Users\Glen\Desktop 用于运行并获取根文件夹“democontainer”的任何用户

至于最终结果,我想要一个带有日期时间的输出文件,它提供有关文件夹结构的信息

我有代码:

Out-File -FilePath "C:\Users\Glen\Desktop\democontainer\demolog.txt" 

但是我不确定在当前代码中的何处添加以及格式化将其复制到存储 blob 的日期

【问题讨论】:

您好 Glen,为了让我们能够帮助您解决您的问题,您首先需要通过提供更多详细信息来帮助我们理解您的问题。请编辑您的问题以帮助我们帮助您!就像现在一样,似乎没有问题,而只是对您的代码的描述。请提供具体的问题、问题、错误或任何其他必要的内容。谢谢! 谢谢我尝试添加更多关于我遇到的问题的详细信息以及我研究过的一些信息。希望这些能解释它 "我想只获取根文件夹 "democontainer"(然后是里面的什么)" 我不太明白这个Out-File 的用法是: Command thats output you are trying to pipe | Out-File -FilePath "C:\Users\Glen\Desktop\democontainer\demolog.txt" -Append 全部复制后,我想要一个存储 blob 结构的 Out-File 尝试使用Get-Item ".\$sourceRootFileDirectory",如果您只需要名称而不需要商品信息,请使用Get-Item ".\$sourceRootFileDirectory"|% Name 【参考方案1】:

我能够使用我找到的这些代码仅输出根目录来解决我的问题

$StorageAccountKey=" "
$sourceFileRootDirectory=" "
$sourceparent = Split-Path -Parent -Path $sourceFileRootDirectory
$StorageAccountName=" "
$ContainerName=" "
$ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
$container = Get-AzureStorageContainer -Name $ContainerName -Context $ctx

 if ($container) 
        $filesToUpload = Get-ChildItem $sourceFileRootDirectory -Recurse -file 



        foreach ($x in $filesToUpload) 
            $blobName = ($x.fullname.Substring($sourceparent.Length)).Replace("\", "/").trim('/')   
            Set-AzureStorageBlobContent -File $x.fullname -Container $container.Name -Blob $blobName -Context $ctx -Force:$Force 
         
         

         
             

【讨论】:

以上是关于Powershell:创建 Az 副本到 blob 容器日志文件或详细的主要内容,如果未能解决你的问题,请参考以下文章

使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件

如何更新所有 Azure Powershell Az 模块?

powershell PowerShell的自定义提示,在切片栏中显示您当前的Az订阅

带有 python 脚本的 Azure Blob 副本

使用 powershell 在 Azure 中不同订阅的存储容器之间复制 blob

在 PowerShell 中使用“备份”上下文创建卷影副本