批处理文件以获取打印机驱动程序名称;如果找到特定的驱动程序名称,请执行操作

时间:2018-09-06 19:54:05

标签: batch-file printing wmic

免责声明:我不是程序员。我对不同的语言有基本的了解,对技术有一般的了解,并且正在学习。我一直在忙于完成这项任务,希望能解决这个问题,但现在我陷入了困境。

我需要制作一个批处理文件,该文件将查询Windows并向我提供所有已安装打印机的驱动程序名称,并且如果计算机上存在特定的驱动程序名称,请执行另一项操作(在这种情况下,请运行命令行实用程序将会更改打印机的首选项。

到目前为止,我已经从互联网上的各种资源中“众包”了一些代码,但是我无法成功获取批处理文件来完成我想要的事情。

代码:

@echo
setlocal
wmic printer get DriverName >> printerlist.txt
set count=0
FOR /F "skip=1 delims= " %%G IN (printerlist.txt) DO call :loop %%G %%H %%I
:loop
if "%1"=="" goto :endloop
if "%1"=="HP" (
   if "%2"=="DeskJet" (
      if "%3"=="1000" (
         echo Found: HP DeskJet 1000
         )
      if "%3"=="2000" (
         echo Found: HP DeskJet 2000
         )
      if "%3"=="3000" (
         echo Found: HP DeskJet 3000
         )
      pause
      )
   )
SHIFT
goto :loop
:endloop

从本质上讲,我将其拼凑在一起,作为一项测试,以便在CMD中找到一条消息,如果它找到了打印机的三个特定驱动程序名称中的任何一个。假设我可以使它工作,我最终将用其他操作替换回声。我认为应该发生的是,该批处理文件将获取所有打印机驱动程序名称,并将它们填充到.txt文件中(这部分工作正常)。然后,批处理文件将循环并在.txt文件中查找,并使用空格作为分隔符,找到我要查找的特定打印机型号并显示回显。就目前而言,如果我运行此批处理文件,它将创建.txt文件,但随后将退出而不显示任何消息。我已经查看了.txt文件,并且其中一台打印机位于文件中,例如“ HP DeskJet 1000”。如果您感到好奇,我会跳过第1行,因为它只显示“ DriverName”。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

请注意,我也不是程序员。以下是hack编码,几乎可以肯定不是最有效的解决方案。那说应该可以。

代码:

GraphQLSchemaValidationError: Field "User.id" can only be defined once. Field "Product.upc" can only be defined once.