【问题标题】:Azure PowerShell cmdlet into Strings将 Azure PowerShell cmdlet 转换为字符串
【发布时间】:2015-10-28 11:48:47
【问题描述】:

只是一个简单的问题。我正在运行类似的代码行,

$publicIP = Get-Content (Get-AzureVM -ServiceName $servicename -Name $vmsname | Get-AzureEndpoint | Select { $._vip })
$OSDisk = Get-Content (Get-AzureVM -ServiceName $servicename -Name $vmsname | Get-AzureOSDisk)

它确实为我提供了 IPAddress 或变量,但是当尝试将值放入 csv 单元格时,它失败了。我认为这是因为它试图添加额外的标签,但我不知道如何只获取字符串并将变量设置为那样。有谁知道如何解决这个问题?

编辑:

如果输出带有:

Get-AzureVM -servicename "vm1" -name "vm1" | Select DNSName | Out-String

是这样的:

DNSName                                                                                                                     
-------                                                                                                                     
http://example.cloudapp.net/

如何将“http://example.cloudapp.net/”作为 CSV 条目输入?现在它正试图将所有代码块放入 CSV,这给我带来了可怕的格式错误。

【问题讨论】:

  • 如何将值放入 csv 中?你复制过去还是导出到 csv?
  • 我用逗号附加每个参数,然后输出文件和 ConvertTo-CSV。然后在查询之后,我获取文件并执行 Export-CSV。我将使用错误更新帖子。
  • 这看起来不对:| Select { $._vip })

标签: powershell azure


【解决方案1】:

SelectSelect-Object 的别名,允许您从一个对象中获取一个或多个属性并使用它们创建一个新对象。

如果您想将属性扩展为仅值,请使用-ExpandProperty 参数:

Get-AzureVM -servicename "vm1" -name "vm1" | Select -ExpandProperty DNSName 

应该给你http://example.cloudapp.net/

此外,当您想将数据发送到 CSV 时,您可以将对象通过管道传送到 cmdlet Export-CSV,它将使用属性名称作为标题,将数组中的对象作为行,将属性作为列。

例子:

Get-ChildItem -File | Select Name, Size | Export-Csv c:\temp\filelist.csv

【讨论】:

  • 谢谢,但我最终得到了我想要的不同的东西,即使用 .Name 或 .Size 将其放入字符串中。
猜你喜欢
  • 2013-03-02
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 2017-11-07
  • 2017-10-01
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多