gpt4 book ai didi

powershell - Powershell如果foreach(

转载 作者:行者123 更新时间:2023-12-02 23:41:39 24 4
gpt4 key购买 nike

我必须在一个很大的文件中找到所有行,其内容多于4

例如这个文件

Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3
Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3
Text1;Text2;Text3;Text4;Text5;

数线没问题
$content=Get-Content .\sample.txt
[regex]::matches($content,";").count

给了我34次点击

每行计算所需的字符数也没有问题
$content=Get-Content .\sample.txt
foreach ($lines in $content) {[regex]::matches($lines,";").count}


  • 5
  • 5
  • 5
  • 5
  • 2
  • 5
  • 2
  • 5

  • 现在,我希望所有行数少于4的行;

    我尝试了这个:
    if (foreach ($lines in $content) {[regex]::matches($lines,";").count} -le 3) {Write-Host $lines}

    但这给我一个错误。

    有了这个
    $count=foreach ($lines in $content) {[regex]::matches($lines,";").count}
    if ($count -le 3) {Write-Host $lines}

    我得到一行-最终的匹配行,但没有另一行。

    如何结合foreach和if?

    最佳答案

    您的语法与此代码有误:

    if (foreach ($lines in $content) {[regex]::matches($lines,";").count} -le 3) {Write-Host $lines}

    您不要将 foreach放在 if语句的条件括号内。改为使用 if内的 foreach语句:
    $content=Get-Content .\sample.txt
    foreach ($lines in $content) {
    $semiCols = [regex]::matches($lines,";").count
    if($semiCols -le 3) {
    Write-Host $semiCols
    }
    }

    输出
    PS E:\Programming\PowerShell> .\lines-fetch.ps1
    2
    2
    PS E:\Programming\PowerShell>

    关于powershell - Powershell如果foreach(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40793967/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com