拆分管道上的项目



我有一个文本文件,它将包含类似的内容:

Code,Server,Success,Failures
ABC,ABCSRV01,4,5

根据脚本中的某些逻辑,成功或失败计数将得到更新。现在,我能想到的最简单的方法是:

$currentStats = Get-Content "C:ONLstats.txt" | Where-Object {$_ -like "ABC,ABCSRV01,*"}
$split = $currentStats.split(",")
$newSuccessCount = $split[2] -as [int]
$newSuccessCount++
$newStats = "ABC,ABCSRV01," + $newSuccessCount + "," + $split[3]
$updatedStats1 = Get-content "C:ONLstats.txt" | Where-Object {$_ -notmatch "ABC,ABCSRV01,*"}
$newStatsTxt = $updatedStats1 + $newStats
$newStatsTxt | Out-File "C:ONLstats.txt"

然而,我忍不住觉得必须有一种更简单的方法来实现这一点——也许正在酝酿中?

将文件作为对象进行交互对您和您的代码都是最有益的。

$currentStats = Import-Csv "C:ONLstats.txt"

然后,您可以访问类似于对象属性的属性SuccessFailures。不确定你在用信息做什么,但你可以做这样的事情。

$currentStats = Import-Csv "E:tempdata.txt"
$update = $currentStats | ForEach-Object{
    If ($_.Code -eq "ABC"){
       $_.Success = [int]$_.Success + 1
    } Else {
        $_.Failures = [int]$_.Failures - 1
    }
    $_    
} 
$updatedStats | Export-Csv -Path "C:ONLstats.txt"

很明显,这不是你要做的,但应该说明你的潜力。

最新更新