添加到CSV

时间:2016-03-09 14:34:30

标签: csv powershell

我有以下代码,基本上获取服务器名称并将其添加到UNC上的CSV。我遇到的问题是,如果我多次运行它会继续附加标题并添加第二个服务器。

首先运行这是文件的外观:

ServerName
Server1

第二次运行就是这样:

ServerName
Server1
ServerName
Server2

如何防止这种情况,以便每次都附加服务器而不是每次写入的标头?

这是我的代码的外观:

$servername = $env:computername

# convert string to an object, otherwise if you output to a CSV it will save the
# strings length instead of the servername

# This entry is for testing
#$servername = "test1"

$obj_list = $servername | Select-Object @{Name='ServerName';Expression={$_}}

# converts to an object and sets no header for the column
#$obj_list | ConvertTo-Csv -NoTypeInformation | % {$_.Replace('"','')} | select -Skip 1 | Add-Content \\test\d$\citrixservers\test1.csv 
$obj_list | ConvertTo-Csv -NoTypeInformation | % {$_.Replace('"','')} | Add-Content \\test\d$\citrixservers\servers.csv

2 个答案:

答案 0 :(得分:1)

如果文件已存在,则跳过标题:

<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>

答案 1 :(得分:1)

您需要使用带有-Append参数的Export-CSV而不是ConvertTo-Csv。这是一种方法。

$servers = @('server1','server2')
foreach ($server in $servers) {
    [pscustomobject]@{'ServerName' = $server} | Export-Csv -Append -Path C:\Servers.csv
}