乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 51|回复: 2

VB 脚本 - 正在搜索文件夹...

[复制链接]

7

主题

17

帖子

8

银币

初来乍到

Rank: 1

铜币
42
发表于 2012-3-7 11:19:35 | 显示全部楼层 |阅读模式
我不确定这个论坛是否适用于VB脚本,或者是否有人在这里使用它。我希望如此,因为这是我要张贴的地方。
因此,我有一个工作目录(W:\ACAD工作\2011项目\...)这里我列出了几个设计公司(子文件夹)。
我有同一个设计公司的几个子文件夹,但是位置不同。例如:(为了避免尴尬,我将保留虚构的名称)
W:\ ACAD·乔布斯\2011项目\设计公司-阿拉巴马州
W:\ ACAD·乔布斯\2011项目\设计公司-华盛顿州
W:\ ACAD·乔布斯\2011项目\设计公司-亚利桑那州
我想搜索名称“设计公司”,并将全名分配给一个变量以供显示。所以,我需要搜索“设计公司”,有Var_A store“设计公司-阿拉巴马”,Var_B store“设计公司-华盛顿”,Var_C store“设计公司-亚利桑那州”。
根据我可靠的O'reilly Pocket reference,我应该能够使用\b开关在句子中搜索单词(如果您愿意,可以使用通配符)。
有人能告诉我这是什么意思吗?
此外,如果我要搜索“设计公司”,我该如何输入开关来查找任何异常文件夹,如“设计公司-亚利桑那州”?
这是我目前拥有的一段代码(也许我看问题的方式不对。如果是,请告知):
  1. cTitle = "Test run"
  2. Set FSO = CreateObject("Scripting.FileSystemObject")
  3. str2011dir = "W:\ACAD JOBS\2011 Projects"
  4. strDF = InputBox("Design Firm Name: ", cTitle, "Design Firm")
  5. strDFm = "\b " & strDF     [color=maroon]' Normally, the switch would go to the front of the string right?[/color]
  6. MsgBox "Input is -" & strDfm,, cTitle     [color=maroon]' This is here to show me what the string consists of.[/color]
  7. If FSO.FolderExists(str2011dir & strDFm) Then
  8.   MsgBox "The folder " & UCase(strDF) & " exists.",, cTitle
  9. Else
  10.   MsgBox "No folder found",, cTitle
  11. End If

编辑:根据MS
所以我的代码
  1. strDF = InputBox("Design Firm Name: ", cTitle, "Design Firm")
  2. strDFm = strDF & "\b"
  3. MsgBox "Input is -" & strDfm,, cTitle

消息框应该显示“设计公司\b ”,所以我的搜索应该会找到任何带有“公司”的内容,对吗?但事实并非如此。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2012-3-7 12:49:55 | 显示全部楼层
FWIW-Dim strSearchString, strSearchFor。

strSearchString="C:\foo\"。
strSearchFor="foo"。

如果InStr(1, strSearchString, strSearchFor)>0则。
MsgBox"True"。
其他。
MsgBox“假”。
结束如果。
编辑-修改代码以获得更好的示例。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2012-3-7 15:28:21 | 显示全部楼层
这肯定需要一些改进,但作为一个简单的例子,请尝试一下:

”定义函数:

函数ShowFolderList(strFolderPath,strSearchString)
Dim i,strTitle,strFolderName,strSubFolderList
strTitle=“显示文件夹列表”
一组so=CreateObject(“Scripting.FileSystemObject”)
如果oFso。FolderExists(strFolderPath)=为真,则
设置oSubFolders=_
o.GetFolder(strFolderPath).子文件夹的
对于oSubFolders中的每个OSUBFonders
strFolderName=oSubFolder.Name
如果InStr(1,strFolderName,strSearchString)>0,则
i=i+1
strSubFolderList=strSubFolderList&
strFolderName和vbNewLine
如果
下一个
<div>MsgBox i和>of>oSubFolders。计数&
“子文件夹匹配:”&vbNewLine&_
vbNewLine和strSubFolderList,即strTitle
其他
MsgBox“未能创建FileSystemObject对象”、_
strTitle
如果
设置oSubFolders=Nothing
文件夹集=无
一组so=Nothing
结束函数

使用多个参数调用函数:

ShowFolderList“C:\_foovScriptTest\”、“foo-”
HTH
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-30 11:15 , Processed in 1.593340 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表