作者:绿色风
分类:
时间:2022-08-17
浏览:126
楼主 xmyjk |
Q:如何运用VBA,在全部分区里面,查找包含某个特定名称,例如“大家好”的文件夹,如果这个文件夹在某个分区的根目录也能查到?
A:运用WSH,调用DOS脚本查询。- Option Explicit
- Sub 全硬盘查找()
- Dim Tar$, FN$
- FN = ThisWorkbook.Path & "\listaaa.txt"
- Tar = "大家好" '模糊查询仅用"大家好"即可,非模糊查询用"\<大家好\>"
- If Dir(FN) <> "" Then Kill FN
- CreateObject("wscript.shell").Run Environ("comspec") & " /c @for /f ""skip=1"" %i in (" & "'" & "wmic logicaldisk where drivetype^=3" & "'" & ") do @dir %i\ /s/ad/b | @findstr """ & Tar & """ >>""" & FN & """", 0, 1 '运用DOS命令在全盘查找,并导出到指定的TXT文件。
- With CreateObject("scripting.filesystemobject").opentextfile(FN) '打开输出的TXT文件
- If Not .atendofstream Then
- Tar = .readall
- MsgBox Tar '输出
- Else
- MsgBox "未找到"
- End If
- .Close '关闭
- End With
- Kill FN '删除
- End Sub
- for /f "skip=1" %i in ('wmic logicaldisk where drivetype^=3')
该语句用于枚举分区的名称,并赋予变量i 除了上述这个命令- for /f "tokens=3" %i in ('echo list volume ^| diskpart ^| findstr "磁盘分区"')
这个命令也可以枚举分区名称。还有- for /f "delims=\" %i in ('fsutil fsinfo drives^|find /v ""') do @echo %i
也可以枚举。- dir %i /ad/b/s | findstr "\<大家好\>"
该语句用于在指定的分区查找含有“大家好”这个字符串的所有文件夹。即使文件夹在根目录下,也可以找到
相关批处理命令,请学习: [批处理命令一日一教学 续]系列帖子索引[2012-2-7]:http://www.bathome.net/thread-13798-1-1.html [系列教程]批处理for语句从入门到精通[20101225更新]:http://www.bathome.net/thread-2189-1-1.html
查找.zip |
2楼 水星钓鱼 |
学习 |
3楼 纵鹤擒龙水中月 |
学习 |
4楼 老糊涂 |
学习 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一