5

私はpowershellの初心者です。今日、私は非常に簡単なことを試しました

Alias  | sls -Pattern 'echo'

生産されましechoたが、私が欲しいのはAlias echo -> Write-Outです。

bashでは、次のことができます

alias | grep 'echo'

私の質問は、なぜslsうまくいかないのかということです。ところで、 に置き換えるslsと、うまくいきfindstrました。

4

2 に答える 2

3

特定の名前のエイリアスを取得したい場合は、次のようにします。

alias -name echo

echo -> Write-Outは次のとおりDisplayNameです。

(alias -name echo).DisplayName

このGet-Aliasコマンドは一連のオブジェクトを返します。各オブジェクトは単一のコマンド エイリアスを表します。CommandTypePowerShell で表示すると、これらのオブジェクトは、、NameおよびModuleNameプロパティを含むテーブルとしてフォーマットされます。

にパイプするfindstrと、フィルタリングされるのはこれらの列の文字列表現であるため、一致するとテーブル行全体が表示されます。

Alias           echo -> Write-Output

各オブジェクトにパイプすると、コマンドレットのパラメーターSelect-Stringにバインドされます。テキストを操作するため、受け取ったオブジェクトを呼び出してその文字列表現を取得するだけです。-InputObjectSelect-StringSelect-StringToString

ToStringプロパティのみを返しNameます。これは、次を実行することで確認できます。

alias | %{$_.tostring()}

したがって、からSelect-Stringの一致はエイリアス名でのみ一致します。

于 2013-09-01T12:50:22.037 に答える