2015-05-18 58 views
1

我正在尝试使脚本将网络打印机连接到用户计算机。 该脚本使用需要打印机作为参数的计算机名称。VBS使用LIKE比较字符串“子或功能未定义”

打印机名称与它们的打印服务器名称相似,例如。 server_USA有打印机,如printer_USA01,printer_USA02。

但它在第一次到达时抛出错误“Sub or Function not defined”...为什么?

Set shl = WScript.CreateObject("WScript.Shell") 
strName = Wscript.Arguments.Item(0) 

'input Printer name 
strPrinter = InputBox("Please enter share name of printer to install:", _ 
    "Add network printer") 

if strPrinter = "" then 
    msgbox "Can't be empty." 
    WScript.quit 

elseif strPrinter Like "printer_USA*" then 
    strServer = server_USA 

elseif strPrinter Like "printer_SPAIN*" then 
    strServer = server_SPAIN 

else 
    'Printer name NOT registered, input printserver manually: 
    strServer = inputbox("Please enter the name of the printserver","printserver") 

    if strServer = "" then 
     msgbox "Can't be empty." 
     WScript.quit 
    End if 

End if 

'ADD 
shl.run "RUNDLL32 PRINTUI.DLL,PrintUIEntry /ga /c\\" & strName & " /n\\" & strServer & "\" & strPrinter 
+1

据我所知,'Like'操作者不会在VBS支持。改用InStr来代替 – MrPaulch

回答

5

在VBScript中没有Like运算符。你可以使用Instr

if strPrinter = "" then 
    msgbox "Can't be empty." 
    WScript.quit 

elseif Instr(1, strPrinter, "printer_USA", vbTextCompare) > 0 then 
    strServer = server_USA 

的vbTextCompare常数(值= 1)被用来执行文本比较