如何使用VBScript获取计算机所有已安装打印机并在同一行输出
问题根因
现有代码的循环逻辑会每次直接覆盖Printers的返回值,因此最终只会保留最后一个遍历到的打印机名称。
调整方案
你需要将所有遍历到的打印机名称拼接为同一个字符串后再返回,以下是修改后的可直接运行代码,默认用, 作为分隔符,你可以按需替换成分号、竖线等其他分隔符:
Function Printers Dim strResult strResult = "" strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer",,48) For each objItem in colItems ' 非首个打印机名称前加分隔符,避免末尾多出多余符号 If strResult <> "" Then strResult = strResult & ", " End If strResult = strResult & objItem.Name Next Printers = strResult End Function WScript.Echo "Printers: " & Printers
运行后就会输出所有打印机名称在同一行,和你期望的效果一致。
内容的提问来源于stack exchange,提问作者Feras Shorafa
相关产品推荐
相关产品推荐

