我有以下代码,基本上获取服务器名称并将其添加到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
答案 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
}