Board logo

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

作者: dizimotong    时间: 2018-12-14 13:34     标题: 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
复制代码

作者: xczxczxcz    时间: 2018-12-14 17:20

为何一定要执着 VBS 呢?。记得 WIN7时代,微软就开始抛弃 VBS 了。而去年微软还在更新 CMD。当然微软的主力已经是PS。
作者: dizimotong    时间: 2018-12-14 19:02

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

回复 3# dizimotong


    把你实现的代码发出来让大家给你优化一下
作者: dizimotong    时间: 2018-12-14 20:28

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




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