2017-05-28 5 views
2

PowerShellにSemantic Versioning Variableを吐き出させようとしましたが、入力したコマンド(ISEで実行するコマンド)または2つのエラー( 'missing私はそれらを解決しようとすると、コマンドで終わるだけで再び表示されます。Select-String -Patternへのパイプ出力

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

は単に-OutVariableで検索用語が定義されて固執する固体のものに正規表現とWeb要求のポイントを仮定:

は、どのように私はこれを得るのですか?


もっと一般的な点として、パイプ内のオブジェクトのプロパティを表示する良い方法はありますか?大量の掘り出した後、私は{$_}を見つけましたが、コマンドがちょっと単純なコマンドレットより複雑なものになった場合は、コマンド以外のものを表示することはできません。

+0

私はまだそれに悩まされており、意味のある何かを出力することができません。次の行は、私が探しているものをさらに表現するかもしれません: '(Invoke-WebRequest -URI https://nodejs.org/dist/latest)| Links.href.ToString |を選択します。 Select-String -Pattern "v \ d + \。\ d + \。\ d +/s" -OutVariable $ NodeVer_target ' –

答えて

0

[regex]を削除します。 Select-Stringはすでにパラメータ-Patternの引数を正規表現として扱います。

変数名から$を削除します。変数を直接使用する必要がありますが、パラメータには、先頭に$のない裸の変数名が必要です。

また、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 *にパイプライン化されたオブジェクトのプロパティ/メソッドのリスト、およびパイプを取得する:パイプライン内の現在のオブジェクトを検査するように


関連する問題