Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 选择“管道插入时的字符串模式输出”_Powershell_Debugging_Pipe_Select String - Fatal编程技术网

Powershell 选择“管道插入时的字符串模式输出”

Powershell 选择“管道插入时的字符串模式输出”,powershell,debugging,pipe,select-string,Powershell,Debugging,Pipe,Select String,我试图让PowerShell吐出一个语义版本控制变量,但它只显示我输入的命令(在ISE中执行该操作)或两个错误(“缺少参数”或“不接受管道输入”)中的任何一个,如果我尝试解决这些错误,最终只会再次显示命令 我如何得到这个: (Invoke-WebRequest -Uri http://someplace).Links.href | Out-String -Stream | Select-String -Pattern [regex]$someGoodRegex -OutVariable

我试图让PowerShell吐出一个语义版本控制变量,但它只显示我输入的命令(在ISE中执行该操作)或两个错误(“缺少参数”或“不接受管道输入”)中的任何一个,如果我尝试解决这些错误,最终只会再次显示命令

我如何得到这个:

(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
参数要求使用没有前导的
$
的裸变量名

您还可以删除
输出字符串-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
后者实际上更时髦



至于检查管道中的当前对象:pipe-into获取管道对象的属性/方法列表,pipe-into获取管道对象的值列表。

我仍然在对它坐立不安,无法让它输出有意义的内容。以下几行可能更能表达我所寻找的内容:
(调用WebRequest-URIhttps://nodejs.org/dist/latest)|选择Links.href.ToString |选择字符串-模式“v\d+\.\d+\.\d+/s”-输出变量$NodeVer\u目标