我正在使用 vbscript 查询正在执行特定命令的“at”作业,我相信我的引用错误。当我查询不包含空格或引号的内容时,我已确认脚本按预期工作;但是,当我查询包含空格和引号的内容时,我没有得到想要的结果。我想找到的确切值是: cmd /c "C:\Test Folder\Folder1\Blah.cmd"
这是我正在使用的代码:
strComputer = "."
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\"_
& strComputer & "\root\cimv2")
Set colRandJob = objWMIService.ExecQuery _
("Select * from Win32_ScheduledJob WHERE Command='cmd /c ""C:\Test Folder\Folder1\Blah.cmd""' ")
For Each objJob in colRandJob
WScript.Echo "Found AT Job with ID " + CStr(objJob.JobID)
Next
我尝试了一些不同的方法,但似乎找不到正确的方法。有人可以帮助我并让我知道正确的方法吗?
更新
我能够通过执行以下操作来解决问题(我只包括相关行)我没有在路径中没有双反斜杠的情况下对此进行测试,但我相信它与我使用的新引用一起需要:
'Assign the string I'm looking for to a variable
set targetCmd = "cmd /c "C:\\Test Folder\\Folder1\\Blah.cmd""
Set colRandJob = objWMIService.ExecQuery _
("Select * from Win32_ScheduledJob WHERE Command='" & targetCmd & "' ")