Jer*_*ams 2 arrays variables powershell foreach select-string
我遇到了从文件中提取文本的问题。这是我最终想要做的:
这是我正在处理的部分的片段:
$FileContents = Select-String -Path "C:\Users\me\Documents\file.ini" -Pattern "NoRequest"
Run Code Online (Sandbox Code Playgroud)
当我使用该行时,我得到以下信息:
PS> $文件内容 Documents\file.ini:222:NoRequest = false Documents\file.ini:281:NoRequest = false Documents\file.ini:347:NoRequest = false Documents\file.ini:387:NoRequest = false Documents\file.ini:1035:NOREQUEST = true Documents\file.ini:1047:NoRequest = true Documents\file.ini:1160:NOREQUEST = true Documents\file.ini:1242:NOREQUEST = true
这就是我想要得到的:
PS> $文件内容 错误的 错误的 错误的 错误的 真的 真的 真的 真的
我尝试将代码通过管道传输到Select-Object -Last 1解决方案中,但由于我的变量是一个数组,因此它选择数组中的最后一行,而不是每行的最后一个字。我还想过只取数组并执行“数组中的 foreach 行,将除最后一个字外的所有内容都剪掉”。我猜这会奏效,但似乎这是一个笨拙的解决方案。我确信有一个简单有效的解决方案,但我只是没有看到。
您可以-split在字符串上使用并获取最后一个结果:
Select-String -Path "C:\Users\me\Documents\file.ini" -Pattern "NoRequest" |ForEach-Object {
-split $_.Line |Select-Object -Last 1
}
Run Code Online (Sandbox Code Playgroud)