我目前有一个CSV文件,其中包含2,440行数据。数据看起来像:
server1:NT:Y:N:N:00:N server2:NT:Y:N:n:33:N
这是我到目前为止所拥有的:
$newCsvPath = Get-Content .\sever.csv |
Where-Object { $_ -notmatch '^#|^$|^"#' }
[int]$windows = 0
[int]$totalsever = 0
$Results = @()
$date = Get-Date -Format g
Clear-Content .\results.csv -Force
foreach ($thing in $newCsvPath) {
$totalsever++
$split = $thing -split ":"
if ($split[1] -contains "NT") {
$windows++
$thing | Out-File results.csv -Append -Force
} else {
continue
}
}
Clear-Content .\real.csv -Force
$servers = Get-Content results.csv
foreach ($server in $servers) {
$server.Split(':')[0] | Out-File real.csv -Append -Force
}
我的问题是,当脚本进入$server.Split(':')[0] | Out-File real.csv -Append -Force
部分时,由于某种原因,它仅输出1,264行,而不是全部输出到“ real.csv”的2,440行。但是,当我删除| Out-File real.csv -Append -Force
时,$server
会存储所有2,400个服务器名称。
有人知道为什么会这样吗?