2012-01-18 31 views
1

我创造出口值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 

的问题是,其中一条线包含划线(主机-PRESET)。我当然会简单地将它改为下划线,但我的CSV需要这个值是一个短划线。在创建完成后,我也可以对整个csv进行更换,但看起来很脏。 有没有一种方法可以在这里使用短划线?

我的错误味精是:

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 

回答

7

您只需通过治疗host-preset属性名作为一个字符串引号括起来:

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

@Sune没问题:) – 2012-01-18 13:25:42