gpt4 book ai didi

powershell - 选择字符串-管道输出时的模式输出

转载 作者:行者123 更新时间:2023-12-03 00:13:09 24 4
gpt4 key购买 nike

我尝试让PowerShell吐出一个语义版本控制变量,但是卡在其中而只显示我输入的命令(在ISE中执行此命令)或2个错误(“缺少参数”或“不接受管道输入”)之一,如果我尝试解决这些问题,最终将再次显示该命令。

我如何得到这个:

(Invoke-WebRequest -Uri http://someplace).Links.href | Out-String -Stream |
Select-String -Pattern [regex]$someGoodRegex -OutVariable $NodeVersion_target

假设正则表达式和Web请求指向实体,将搜索到的术语简单地保留在已定义的 -OutVariable中?

总的来说,有没有一种很好的方法来显示管道中对象的属性?经过大量的挖掘,我偶然发现了 {$_},但如果命令比一个简单的cmdlet复杂得多,它就无法再次显示该命令。

最佳答案

删除[regex]Select-String已经将参数-Pattern的参数视为正则表达式。

从变量名称中删除$。您需要它直接使用变量,但是-OutVariable参数需要裸变量名称,而无需前导$

您也可以删除Out-String -Stream

这样的事情应该起作用:

$uri = 'http://www.example.com/'
$re = 'v\d+\.\d+\.\d+/s'
(Invoke-WebRequest -Uri $uri).Links.href |
Select-String -Pattern $re -OutVariable NodeVersion_target

或者,您可以将管道的输出分配给变量,而不是使用 -OutVariable:
$uri = 'http://www.example.com/'
$re = 'v\d+\.\d+\.\d+/s'
$NodeVersion_target = (Invoke-WebRequest -Uri $uri).Links.href |
Select-String -Pattern $re

后者实际上更多的是PoSh。

至于检查管道中的当前对象:将管道输送到 Get-Member 中以获取管道对象的属性/方法的列表,然后将管道输送到 Format-List * 中以获取管道对象的值的列表。

关于powershell - 选择字符串-管道输出时的模式输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44225195/

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