これは非常に簡単です...なぜ最初のコマンドが機能し、2番目のコマンドが機能しないのですか?
Findstrは、PowerShellではなく、コマンドのような「DOS」での最適な使用法を私に求めています。
Get-AppXProvisionedPackage -online | findstr ^DisplayName
Get-AppXProvisionedPackage -online | Select-String -pattern "DisplayName"
PowerShell初心者:)
findstr
はオペレーティングシステムの実行可能ファイル(findstr.exe
実際には)であり、PowerShell内から確認できます。
Get-Command findstr
出力:
CommandType Name Version Source ----------- ---- ------- ------ Application findstr.exe 10.0.10... C:\WINDOWS\system32\findstr.exe
Select-String
似ていますが、より強力で、ネイティブのPowerShellコマンドレットです
CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Select-String 3.1.0.0 Microsoft.PowerShell.Utility
ただし、まったく同じように機能したり、同じ入力を受け取ったりすることはありません。Select-String
通常、PowerShellでの使用に適していますが、ヘルプを確認して、どのように機能するかを確認してください。
マティアスが指摘したように、あなたがしていることのために、あなたはおそらく欲しいでしょうSelect-Object
:
Get-AppXProvisionPackage -online | Select-Object DisplayName
これにより、単一のプロパティを持つ新しいオブジェクトが返されますDisplayName
。プロパティの値を取得するには、次を使用できます。
Get-AppXProvisionPackage -online | Select-Object -ExpandProperty DisplayName
(CapitanShinChanの回答も参照してください)
PowerShellコマンドレットは、多くの場合、さまざまなプロパティを持つオブジェクトを返します。表示される定型化された形式は表示用ですが、文字列解析を使用せずにプログラムでプロパティにアクセスできます。Select-Object
1つの方法であり、別の方法はドット.
表記を使用することです。
$pkg = Get-AppXProvisionPackage -online
$pkg.DisplayName
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加