[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] VBS如何找到指定编号的文件夹进行操作?

本帖最后由 dizimotong 于 2018-12-14 21:32 编辑

问题是这样的:
        在一个指定文件目录下,假设为D:\test,里面有许多包含特定编号的文件夹,如XXX123456AXXX,XXX为其他的字符,可能相同,且不一定只有3个字符,这里只是举一个例子,但是它们的每个编号都不一致,现在我想通过这些文件夹的特定编号获取它们的完整的文件夹名进行操作,请问能否提供一个思路给参考一下? 注:用VBS实现
各位好,以下是我用VBS写的代码,大家看一下有什么可以改进的地方,或者提供更好的方法?
  1. Option Explicit
  2. Dim id,fname,pos
  3. Dim fso, dir, folder, file
  4. Set fso = CreateObject("scripting.filesystemobject")
  5. Set dir = fso.GetFolder("E:\TEST\VBS\TEST")
  6. fname = ""
  7. id = InputBox("请输入编号:")
  8. id = UCase(id)
  9. For Each folder In dir.SubFolders
  10. pos = InStr(UCase(folder.Name), id)
  11. If pos <> 0 Then
  12. fname = folder.Name
  13. Exit For
  14. End If
  15. Next
  16. If fname = "" Then
  17. WScript.Echo "没有找到该编号:" &id &"请确认该编号是否正确"
  18. WScript.Quit 1
  19. End If
  20. For Each file In folder.Files
  21. WScript.Echo file.Name
  22. next
复制代码

为何一定要执着 VBS 呢?。记得 WIN7时代,微软就开始抛弃 VBS 了。而去年微软还在更新 CMD。当然微软的主力已经是PS。

TOP

回复 2# xczxczxcz
首先感谢您的回复,之所以用VBS有以下几个原因:
1)我要实现的这个功能是一个VBS脚本中的一段,该脚本是我们部门需要的,但是很多人的系统仍然是XP的,并不支持PS,因为我们部门的一些专业软件仅在XP系统下使用,如果要升级的话,需要一笔不小的费用,这个我就不多说了
2)之前我比较擅长批处理脚本,也用批处理实现过该功能,而VBS我自学了两三个星期,之所以改成用VBS,是因为后面用到函数的递归调用,用VBS实现递归比批处理要好的多,另外还要用到一些对象的属性和方法。其实我自己有一个大概思路去实现该功能,但感觉比较笨拙,可能是自己才学两三个星期的VBS吧,我不知道有没有简便的方法去实现

TOP

回复 3# dizimotong


    把你实现的代码发出来让大家给你优化一下
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher
好的,不过由于只是有一个思路而已,我还没去编写和测试,等我写完和测试完后再贴出来,麻烦大家优化一下或者提供更好的思路,麻烦了

TOP

返回列表