【问题标题】:New-Object cannot contain a dash (-) but "needs to"New-Object 不能包含破折号 (-) 但“需要”
【发布时间】:2012-02-13 04:18:39
【问题描述】:

我正在创建一个用于将值导出到 CSV 的新对象:

New-Object -TypeName PSObject -Property @{
            host_name = ($server.name).ToLower()
            address = $IPAddress
            host_is_collector = "no"
            host-preset = "windows-server"
        } | Select-Object host_name,address,host-preset | Export-Csv -Path $nConf_import_host_file

问题是其中一行包含破折号(主机预设)。我当然会简单地将其更改为下划线,但我的 CSV 需要这个值是破折号。在创建整个 csv 之后,我也可以对其执行 -replace 操作,但这似乎很脏。 有没有办法可以在这里使用破折号?

我的错误信息是:

Missing '=' operator after key in hash literal.
At Z:\Scripts\Testscripts\ScanServers_and_check_nagiosV7.ps1:336 char:16
+                 host-preset <<<<  = "windows-server"
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : MissingEqualsInHashLiteral

【问题讨论】:

    标签: powershell export-to-csv


    【解决方案1】:

    您只需将host-preset 属性名称用引号括起来,将其视为字符串:

    New-Object -TypeName PSObject -Property @{ "host-preset" = "windows-server" }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 2023-03-19
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      相关资源
      最近更新 更多