2011-01-19 68 views
7

我想在PowerShell中写出当前进程ID。此作品:在PowerShell中连接字符串和表达式结果

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

但是,如果可能,我想在一行中完成。用$([System.Diagnostics.Process]::GetCurrentProcess()).Id代替变量似乎没有评估表达式。

回答

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

如果我们使用自动变量:

'My process id is {0}' -f $pid 
7
Write-Output "My process ID is $([System.Diagnostics.Process]::GetCurrentProcess().Id)" 

基本上你只需要标识后,移动右括号。

+0

啊,谢谢你,那是有效的! – EMP 2011-01-19 23:30:29

8

这可能是一点点简单:

$pid 

"My process id is $pid" 

有关自动变量的详细信息执行:

man about_automatic_variables 
+0

+1虽然我的问题主要是关于字符串连接,但这也很有帮助。 – EMP 2011-01-20 02:30:34

+1

是的,因为你想要在字符串中使用`subexpression operator`,例如“blah $(.. expression ..)yada”。 PowerShell将评估`$()`(即子表达式)内部的表达式,并将结果呈现为一个字符串并在该位置插入该字符串。 – 2011-01-20 05:04:24

相关问题