代码之家  ›  专栏  ›  技术社区  ›  LetzerWille

如何从PowerShell的2行输出中获取字符串

  •  1
  • LetzerWille  · 技术社区  · 6 年前

    我需要从PowerShell输出中获取一个字符串。我需要知道包裹的名字
    提示工具包 在下面的管道里使用

    > pip list --outdated
    Package        Version Latest Type
    -------------- ------- ------ -----
    prompt-toolkit 1.0.15  2.0.3  wheel
    

    pip list——过时,其中object$exclude-notcontains$| foreach pip安装-U$拆分(“”)[0]

    更新。
    修改后的工作脚本

        $(
        $exclude = 'virtualenv', 'prompt-toolkit'
        pip list --outdated --format=freeze  | ForEach{ $_.split("=")[0]} | Where-Object { $exclude -notcontains $_ } | ForEach { pip install -U $_ }                                    
        ) *>&1 >> Python_Modules_Updates_Log.txt
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Larry Song    6 年前

    简单的尝试

    pip list --outdated | select-object -skip 2 | Where-Object { $exclude -notcontains $_ } | ForEach { pip install -U $_.split(" ")[0] }
    
        2
  •  0
  •   Paxz Quiron    6 年前

    要获取列表的包名称,可以使用 -ExpandProperty 的功能 Select-Object 并通过管道发送到install命令:

    pip list --outdated | Select-Object -ExpandProperty Package | Where-Object { $exclude -notcontains $_ } | ForEach { pip install -U $_}