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!