2016-04-26 71 views
0

我有以下的WMI查詢,該民調whetehr文件已C:\test創建:如何正確逃生行情WMI查詢

Select * From __InstanceCreationEvent Within 1 
Where TargetInstance Isa "Cim_DirectoryContainsFile" 
and TargetInstance.GroupComponent="Win32_Directory.Name='C:\\test'" 

我能夠在wbemtest.exe沒有任何問題,運行這一點 - 這裏是從WBEMTEST輸出:

enter image description here

然而,當我嘗試在CMD運行mofcomp myfile.mof,我得到一個「不可分析查詢」的錯誤。在.mof文件,我的查詢看起來是這樣的:

"Select * From __InstanceCreationEvent Within 1 " 
"Where TargetInstance Isa \"Cim_DirectoryContainsFile\" " 
"and TargetInstance.GroupComponent=\"Win32_Directory.Name=\"C:\\\\test\"\""; 

我真的想不出有什麼不對我的字符轉義...... 我知道,在WQL我並不需要連接字符串,所以我不認爲這是問題。但是,我不知道是否需要使用單引號或雙引號,或者是否需要在一組雙引號內單引號轉義,或者雙引號在一組引號內是否可用...

關於這個細節的文檔幾乎是不存在的,所以如果有任何經驗的人都可以幫助我,那真的很感激!

謝謝

回答

1

這個過濾器可以這樣寫:

"Select * From __InstanceCreationEvent Within 1 " 
"Where TargetInstance Isa \"Cim_DirectoryContainsFile\" " 
"and TargetInstance.GroupComponent=\"Win32_Directory.Name=\'C:\\\\test\'\""; 

和這個工作沒有問題。有關此處發生的更多詳情,請參見this answer。這似乎是Notepad++干擾這種格式的某種問題。

另請注意,在過濾器字符串中使用單引號和雙引號。