2016-12-01 97 views
2
Get-WmiObject -Class win32_logicaldisk -Filter 'DeviceID="C:"' 

我想要做什么,如何在PowerShell中扩展变量?

$var="C:" 
Get-WmiObject -Class win32_logicaldisk -Filter 'DeviceID="{$var}"' 

什么都不做。我试图改变引号,连接字符串和其他1000个东西,但它们不起作用。为什么上面的例子不起作用,什么工作?

+0

' - 筛选器 “的DeviceID = '$ VAR'”'(注意过滤字符串周围的双引号) –

+0

@ MathiasR.Jessen一提到,我试图扭转引号,它不起作用 – Andrei

+1

你真的尝试过吗?在你的例子中,你已经把'{}'放在变量的周围了,这肯定会使查询不返回 –

回答

3

当您使用'(单引号)开始字符串文字时,您正在创建一个逐字字符串 - 也就是说,字符串内的每个字符都被逐字解释,并且变量引用和表达式不会扩展!

使用"如果您希望变量进行扩展:

$var = 'C:' 
Get-WmiObject -Class win32_logicaldisk -Filter "DeviceID='$var'" 

如果你的变量名奇怪的字符,或后跟一个字字符,你可以用两个大括号限定变量名{}立即$

$var = 'C:' 
Get-WmiObject -Class win32_logicaldisk -Filter "DeviceID='${var}'"