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 & "' ")