将调试写入文件并将其中的一部分用作变量

时间:2016-05-27 08:44:59

标签: powershell azure azure-storage command-prompt azure-storage-blobs

我需要使用write-debug来查看azure存储访问密钥,但我需要将输出保存到txt文件中,然后在该文件中找到它并在powershell中将其用作变量,这是我的代码:

$DebugPreference = “Continue”
write-debug (Get-AzureRmStorageAccountKey -ResourceGroupName "USWest" -AccountName "mystorageaccountname") | Out-File output.txt

以下是其输出的一部分: enter image description here 由于没有创建文件,因此出了问题。有人可以帮我完成代码,我只需要捕获key1,这是在“value”之后开始的长字符串:“

1 个答案:

答案 0 :(得分:2)

不需要使用Write-Debug cmdlet获取存储访问密钥。

这是一个简单的单行程序,可以使用Tee-Object cmdlet将Get-AzureRmStorageAccountKey的输出保存到output.txt。然后,使用Where-Object过滤key1,最后使用Select-Object选择value属性并将其存储到$key1Value

$key1Value = Get-AzureRmStorageAccountKey -ResourceGroupName "USWest" -AccountName "mystorageaccountname" | 
    Tee-Object -FilePath output.txt | # save the result to output.txt and keep it in the pipeline
    Where-Object KeyName -eq 'key1' | # filter for the key1
    Select-Object -ExpandProperty value # select the desired value property

您可以使用以下方法输出值:

$key1Value

你也可以试试这个:

$azureStorageAccountKey = Get-AzureRmStorageAccountKey -ResourceGroupName "USWest" -AccountName "mystorageaccountname"
$azureStorageAccountKey | Format-List * -Force | Out-File output.txt
$key1Value = $azureStorageAccountKey | Where-Object KeyName -eq 'key1' | Select-Object -ExpandProperty value