Powershell 我们的文件只打印了我一半的结果
我目前有一个CSV文件,有2440行数据。数据如下所示: server1:NT:Y:N:N:00:N server2:NT:Y:N:n:33:N 我的问题是,当脚本到达Powershell 我们的文件只打印了我一半的结果,powershell,csv,split,save,Powershell,Csv,Split,Save,我目前有一个CSV文件,有2440行数据。数据如下所示: server1:NT:Y:N:N:00:N server2:NT:Y:N:n:33:N 我的问题是,当脚本到达$server.Split(“:”)[0]| Out文件real.csv-Append-Force部分时,出于某种原因,它只输出1264行,而不是全部2440行到“real.csv”。但是,当我删除real.csv-Append-Force文件时,$server存储所有2400个服务器名称 有人知道为什么会发生这种情况吗?将spl
$server.Split(“:”)[0]| Out文件real.csv-Append-Force
部分时,出于某种原因,它只输出1264行,而不是全部2440行到“real.csv”。但是,当我删除real.csv-Append-Force文件时,$server
存储所有2400个服务器名称
有人知道为什么会发生这种情况吗?将
split[1]-包含“NT”
更改为“split[1]-eq“NT”。但处理csv的方式很奇怪。。为什么不使用
Import CSV-Delimiter':'`并处理对象?为什么不将$split[0]
作为$thing
直接输出到real.CSV
?第二个是获取内容,foreach是多余的。我同意这是一种奇怪的方式,但我的问题是文件本身。如果我使用Import CSV
,它会一直认为注释是标题,并丢弃文件的其余部分,而不管我是否跳过了这些行。我也不能使用$split[0]| Out File results.csv-Append-Force
,因为它一直在打印1264行而不是全部2400行,这是我面临的主要问题。
$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
}