2016-12-01 50 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}'"