2014-02-13 44 views
1

我正在嘗試編寫一個基於文件中的值設置用戶默認打印機的powershell腳本。帶有包含斜線的變量的Powershell WMI查詢

當文件中的值是網絡打印機\ share \ printername時,腳本失敗。我假設這是由於「\」斜槓。這應該如何在PowerShell中處理。我試圖確定是否需要添加一些特殊字符來避開斜線。

##Read Default Printer value from file and set as new Default printer. 
$path="\\share\profiles$\$env:username.V2\DefaultPrinter.txt" 
$DefaultPrinterName=Get-Content $path 
$DefaultPrinter = Get-Wmiobject -Query "Select * FROM WIN32_Printer WHERE Name like '$DefaultPrinterName'" 
$DefaultPrinter.SetDefaultPrinter() 
+0

什麼的'$ DefaultPrinterName'變量樣子的價值? –

回答

1

您只需要使用雙\

例子:

gwmi -Query "Select * from Win32_Printer where name like '\\\\192.168.2.49\\HP Color LaserJet 2600n'" 


Location  : 
Name   : \\192.168.2.49\HP Color LaserJet 2600n 
PrinterState : 33554432 
PrinterStatus : 3 
ShareName  : HPCL2600 
SystemName : \\192.168.2.49 
0

您必須指定打印機的名稱和打印機的不是路徑。

在這種情況下,請僅在查詢中提供「HP Color LaserJet 2600n」,查詢將返回正確的輸出。

所以最終的查詢應該是 - 「從Win32_Printer選擇*,其中名稱,如‘於HP Color LaserJet 2600N’」