2011-01-19 24 views
7

現在のプロセスIDをPowerShellに書き出します。これは動作します:PowerShellで文字列と式の結果を連結します。

$processId = $([System.Diagnostics.Process]::GetCurrentProcess()).Id 
Write-Output "My process ID is $processId" 

ただし、可能であれば、私は1行でやりたいと思います。変数に$([System.Diagnostics.Process]::GetCurrentProcess()).Idを代入すると、式が評価されないようです。

答えて

12
'My process id is {0}' -f [System.Diagnostics.Process]::GetCurrentProcess().Id 

そして、我々は自動変数を使用している場合:

'My process id is {0}' -f $pid 
+0

ああ、私はそれが好きです - 簡単な文字列の書式設定。私はこれに受け入れられた答えを変えています。 – EMP

7
Write-Output "My process ID is $([System.Diagnostics.Process]::GetCurrentProcess().Id)" 

基本的には、IDの後に閉じ括弧を移動するだけで済みます。

+0

ありがとうございました! – EMP

8

これは単純少しあるかもしれない:自動変数についての詳細情報については

$pid 

または

"My process id is $pid" 

は実行します。

man about_automatic_variables 
+0

+1私の質問は主に文字列の連結に関するものでしたが、これは非常に知っておくと便利です。 – EMP

+1

文字列の中で 'サブ表現演算子 'を使いたいと思っています。 "blah $(..表現より)yada"。 PowerShellは '$()'(つまり部分式)内の式を評価し、その結果を文字列にレンダリングし、その文字列をその場所に挿入します。 –