使用if查询wmic.exe编写一个简单的批处理文件

时间:2018-03-20 15:03:24

标签: batch-file wmic

我有3种不同的PC型号,我想为这3种型号部署脚本。脚本运行wmic查询并检查PC模型,当它与其中一个匹配时,它会转到路径并安装应用程序。 我正在测试以下脚本,但无法使其正常工作

这是普通文本

    @for /f "tokens=*" %%m in ('wmic computersystem get model /value ^| find 
   "="') do set %%m
    @echo %Model%

  If "%Model%" == "HP EliteBook 840 G3" then Goto:840G3
  If "%Model%" == "HP EliteBook 840 G4" then Goto:840G4
  If "%Model%" == "HP EliteBook 850 G4" then Goto:850G4
   Goto WrongModel

  :840G3
  ping google.com

  Goto END

  :840G4
 ping yahoo.com

  Goto END

   :850G4
  timeout /t 100

  Goto END

   :END 

2 个答案:

答案 0 :(得分:0)

看起来问题是'然后'

尝试使用这样的脚本:

If "%Model%" == "HP EliteBook 840 G3" Goto:840G3
If "%Model%" == "HP EliteBook 850 G4" Goto:850G4
If "%Model%" == "HP EliteBook 840 G4" Goto:840G4

答案 1 :(得分:0)

根据我的评论,以下是您提供的行1-7的替代品:

@Echo Off
For /F "Skip=1 Tokens=3-4" %%A In ('WMIC ComputerSystem Where^
 "Model='HP EliteBook 840 G3' Or Model='HP EliteBook 840 G4' Or^
 Model='HP EliteBook 850 G4'" Get Model 2^>Nul') Do For /F "Tokens=*" %%C In (
    "%%A%%B") Do GoTo %%C 2>Nul