Powershell 拆分管道上的项目

Powershell 拆分管道上的项目,powershell,Powershell,我有一个文本文件,其中包含类似的内容: Code,Server,Success,Failures ABC,ABCSRV01,4,5 根据脚本中的某些逻辑,将更新成功或失败计数。现在,我能想到的最简单的方法是: $currentStats = Get-Content "C:\ONL\stats.txt" | Where-Object {$_ -like "ABC,ABCSRV01,*"} $split = $currentStats.split(",") $newSuccessCount = $

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

Code,Server,Success,Failures
ABC,ABCSRV01,4,5
根据脚本中的某些逻辑,将更新成功或失败计数。现在,我能想到的最简单的方法是:

$currentStats = Get-Content "C:\ONL\stats.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:\ONL\stats.txt" | Where-Object {$_ -notmatch "ABC,ABCSRV01,*"}
$newStatsTxt = $updatedStats1 + $newStats
$newStatsTxt | Out-File "C:\ONL\stats.txt"

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

作为对象与文件交互将对您和您的代码最为有利

$currentStats = Import-Csv "C:\ONL\stats.txt"
然后可以访问类似对象属性的属性
Success
Failures
。不确定你在用信息做什么,但你可以这样做

$currentStats = Import-Csv "E:\temp\data.txt"
$update = $currentStats | ForEach-Object{

    If ($_.Code -eq "ABC"){
       $_.Success = [int]$_.Success + 1
    } Else {
        $_.Failures = [int]$_.Failures - 1
    }
    $_    
} 
$updatedStats | Export-Csv -Path "C:\ONL\stats.txt"

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

作为对象与文件交互将对您和您的代码最为有利

$currentStats = Import-Csv "C:\ONL\stats.txt"
然后可以访问类似对象属性的属性
Success
Failures
。不确定你在用信息做什么,但你可以这样做

$currentStats = Import-Csv "E:\temp\data.txt"
$update = $currentStats | ForEach-Object{

    If ($_.Code -eq "ABC"){
       $_.Success = [int]$_.Success + 1
    } Else {
        $_.Failures = [int]$_.Failures - 1
    }
    $_    
} 
$updatedStats | Export-Csv -Path "C:\ONL\stats.txt"

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

作为对象与文件交互将对您和您的代码最为有利

$currentStats = Import-Csv "C:\ONL\stats.txt"
然后可以访问类似对象属性的属性
Success
Failures
。不确定你在用信息做什么,但你可以这样做

$currentStats = Import-Csv "E:\temp\data.txt"
$update = $currentStats | ForEach-Object{

    If ($_.Code -eq "ABC"){
       $_.Success = [int]$_.Success + 1
    } Else {
        $_.Failures = [int]$_.Failures - 1
    }
    $_    
} 
$updatedStats | Export-Csv -Path "C:\ONL\stats.txt"

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

作为对象与文件交互将对您和您的代码最为有利

$currentStats = Import-Csv "C:\ONL\stats.txt"
然后可以访问类似对象属性的属性
Success
Failures
。不确定你在用信息做什么,但你可以这样做

$currentStats = Import-Csv "E:\temp\data.txt"
$update = $currentStats | ForEach-Object{

    If ($_.Code -eq "ABC"){
       $_.Success = [int]$_.Success + 1
    } Else {
        $_.Failures = [int]$_.Failures - 1
    }
    $_    
} 
$updatedStats | Export-Csv -Path "C:\ONL\stats.txt"

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

输入文件的格式类似于CSV。使用导入CSV将是最有益的。您的输入文件格式类似于CSV。使用导入CSV将是最有益的。您的输入文件格式类似于CSV。使用导入CSV将是最有益的。您的输入文件格式类似于CSV。使用导入CSV将是最有益的,完全忘记导入CSV cmdlet!完全忘记了导入CSV cmdlet!完全忘记了导入CSV cmdlet!完全忘记了导入CSV cmdlet!