2016-08-01 4 views
0

私はPowershellの新機能ですが、私にとってはGoogleのどこからでもこの方法を見つけることができません。Powershellスクリプトでは、入力されたパラメータをフィルタリングするために、入力されたパラメータを表示するために

ここでは、実行時にスクリプトを表示する必要があります。 http://imgur.com/gallery/nB459

停止したプロセスを表示するためにスクリプトを取得していますが、私はパラメータでフィルタリングすることができませんでした。 (私も同様に機能するパラメータを持っています)

私のコードです。

param ([string]$myVariable) 
"DATE AND TIME IS" 
"$((Get-Date).toString())" 
"The following $myVariable Services are currently stopped on: $(HostName)" 
Get-Service | Where-Object {($_.status -eq "stopped") 
"List of stopped services complete." 
"Script Terminating" 
powershell -noexit 

これまでのところ、停止したサービスを表示するようにしました。私は同じ行に別のパラメータを入力しようとしましたが、出力をさらにフィルタリングするためにサービスを取得します。しかし、私がそれをするたびに、常にエラーを投げます。

私が試した: (myVariable変数)のfirstletterによって文字列 フィルタリング

によるフィルタリングそして、私はGoogleで試して何かを見つけることができません。誰もが私がすでに試したものを推薦し続ける= どんな助けも大いに評価されるだろう! :) GET-サービスラインで

+0

すみません。 FROM powershellの実行時に変数がスクリプトに渡されます。 基本的に、スクリプトはその行を呼び出して、その後に変数を渡すことによって実行されます。 例:File/System/Path/Script.ps1 A そこからすべての "A"関連のフィールドを検索します –

+0

gotcha、1秒私は答えを提供します – krousemw

+0

実際に私はそれを得たと思います... 。Get-Service Lineの 。それも変更してください Get-Service $ myVariable * | Where-Object {($ _。status eq "stopped")} –

答えて

-1

あなたはこの1つのだけの行を変更する必要があります。

Get-Service | Where-Object {($_.status -eq "stopped" -and $_.Name.Substring(0,1) -eq $myVariable)} 

サービスを停止してから、パラメーターから渡された文字でサービスをフィルタリングしますか?私はそれがあなたの求めるものだと思いますか?

+1

いいね!ありがとう! これは意味があります。それは動作します...しかし、部分文字列のポイントは何ですか?だから、description/displaynameを持つアプリケーションしか見つからないのですか? –

+0

ここでは、サービス名string変数を使用して、Substringメソッドを呼び出すだけです。これにより、名前の最初の文字を変数と比較することができます。すべてのサービスには名前が付いているので、すべてのサービスが停止し、手紙が渡されてから検索されます。しかし、パラメータとして単なる文字以上のものを渡す場合は、より多くの部分文字を比較する必要があります。お役に立てれば。投票停止の場合は、コメントを追加してください。 – krousemw

1

使用

get-service $myVariable* | where-object {($_.status -eq "stopped")} 
関連する問題