ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何运用VBA进行全盘查找特定名称的文件夹(用DOS命令)

如何运用VBA进行全盘查找特定名称的文件夹(用DOS命令)

作者:绿色风 分类: 时间:2022-08-17 浏览:126
楼主
xmyjk
Q:如何运用VBA,在全部分区里面,查找包含某个特定名称,例如“大家好”的文件夹,如果这个文件夹在某个分区的根目录也能查到?

A:运用WSH,调用DOS脚本查询。
  1. Option Explicit

  2. Sub 全硬盘查找()
  3.     Dim Tar$, FN$
  4.     FN = ThisWorkbook.Path & "\listaaa.txt"
  5.     Tar = "大家好" '模糊查询仅用"大家好"即可,非模糊查询用"\<大家好\>"
  6.     If Dir(FN) <> "" Then Kill FN
  7.     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文件。
  8.     With CreateObject("scripting.filesystemobject").opentextfile(FN) '打开输出的TXT文件
  9.         If Not .atendofstream Then
  10.             Tar = .readall
  11.             MsgBox Tar '输出
  12.         Else
  13.             MsgBox "未找到"
  14.         End If
  15.         .Close '关闭
  16.     End With
  17.     Kill FN '删除
  18. End Sub
  1. for /f "skip=1" %i in ('wmic logicaldisk where drivetype^=3')
该语句用于枚举分区的名称,并赋予变量i
除了上述这个命令
  1. for /f "tokens=3" %i in ('echo list volume ^| diskpart ^| findstr "磁盘分区"')
这个命令也可以枚举分区名称。还有
  1. for /f "delims=\" %i in ('fsutil fsinfo drives^|find /v ""') do @echo %i
也可以枚举。
  1. 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总版主之一

评论列表
sitemap