Board logo

标题: [问题求助] [已解决]vbs调用wmi查找指定扩展名文件where子句有没有in操作符? [打印本页]

作者: slovent    时间: 2016-10-6 22:48     标题: [已解决]vbs调用wmi查找指定扩展名文件where子句有没有in操作符?

本帖最后由 pcl_test 于 2016-10-7 12:47 编辑

请问各位老师,winmgmts里的select语法有没有in条件?
比如:ExecQuery("Select * From CIM_DataFile where Drive='"&drive&"' and Extension in ('mp3','mp4')")

因为我想实现全盘搜索多个媒体扩展名的文件,比如一次性返回扩展名为 mp3 mp4 mkv rmvb 等扩展名的文件和路径,但是似乎不能像sql那样写in条件,这个有其他办法解决吗?文件太多,每个扩展名搜索一次太消耗时间了。
作者: codegay    时间: 2016-10-6 22:52

  1.  ∧ ∧
  2. (゜∀゜*) 
  3. ⊂   つ≡=-
  4.  と,, )~≡=-
  5.    ヽ)≡=-
复制代码
everything是个好东西。
作者: slovent    时间: 2016-10-6 22:53

唉,可惜我得用脚本实现,因为要在众多机器上查询,还需要将结果写入excel。。。
作者: codegay    时间: 2016-10-6 23:01

es 支持命令行。http://bbs.bathome.net/thread-37744-1-1.html

支持etp 和http 模式,可以在远程搜索 http://www.voidtools.com/support/everything/etp/
作者: aa77dd@163.com    时间: 2016-10-6 23:17

回复 1# slovent

in 的实现终归还是 or ... or ... or ... ....
  1. ExecQuery("Select * From CIM_DataFile where Drive='"&drive&"' and ( Extension='mp3' or Extension='mp4' ) ")
复制代码
WMI 真的很慢
作者: slovent    时间: 2016-10-6 23:27

回复 4# codegay


谢谢codegay老师,不过我尽量还是不要在别人的机器上安装第三方软件的好:)
作者: slovent    时间: 2016-10-6 23:29

回复 5# aa77dd@163.com

感激aa77dd@163.com老师,我试试,那请问,想实现我的要求,还有更给力的方法吗?不想借用第三方工具,如果只是命令行工具倒还行,es需要依赖Everything,不太好的样子。。。
作者: aa77dd@163.com    时间: 2016-10-6 23:50

本帖最后由 aa77dd@163.com 于 2016-10-6 23:56 编辑

回复 7# slovent

只获取最基本的信息, 比如文件路径, DIR 比 WMI 快

测试于 win7
  1. @echo off
  2. for %%d in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  3.         title search %%d:\*.mp3 *.mp4 *.mkv *.rmvb
  4.         2>nul dir %%d:\*.mp3 *.mp4 *.mkv *.rmvb /a /s /b
  5. )
  6. pause
复制代码

作者: slovent    时间: 2016-10-7 00:09

回复 8# aa77dd@163.com


  帅,感谢aa77dd@163.com老师,这个的确很快,不过结果集里只有mp3格式的文件,其他格式的文件似乎没有搜索出来,win8系统
作者: aa77dd@163.com    时间: 2016-10-7 00:14

本帖最后由 aa77dd@163.com 于 2016-10-7 00:23 编辑

回复 9# slovent

dir *.ext1 *ext2 *.ext3 ... 这样的用法似乎有 BUG, WIN7 上我尝试了几次都不正常, 确实会不给全部的结果, 甚至是给很少的结果

我改成了这样
  1. @echo off
  2. >filelist.txt (
  3.     for %%d in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  4.         if exist %%d: (
  5.             for %%t in (mp3 mp4 mkv rmvb) do (
  6.                 title search %%d:\*.%%t
  7.                 2>nul dir %%d:\*.%%t /a-d /s /b
  8.             )            
  9.         )
  10.     )
  11. )
  12. pause
复制代码

作者: slovent    时间: 2016-10-7 00:27

回复 10# aa77dd@163.com

完美,感激aa77dd@163.com老师,我试试融入到我的脚本里。呵呵




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2