找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19074|回复: 1

[问题求助] VBS如何实现类似资源管理器选择多个文件的对话框?

[复制链接]
发表于 2013-3-27 18:21:13 | 显示全部楼层 |阅读模式
在网上查到可以选择多个文件的对话框,代码如下:
  1. Set objDialog = CreateObject("UserAccounts.CommonDialog")
  2. objDialog.Filter = "All Files|*.*"
  3. objDialog.Flags = &H200
  4. objDialog.FilterIndex = 1
  5. objDialog.InitialDir = "D:"
  6. objDialog.ShowOpen
  7. Wscript.Echo objDialog.FileName
复制代码
效果如下:


对话框选择区太小,不好查找文件,于是在网上找资料,终于让我找到了,就是在objDialog.Flags = &H200 后面续加一个参数&H80000,使其类似于资源管理器一样打开一个文件的对话框。
代码如下:
  1. Set objDialog = CreateObject("UserAccounts.CommonDialog")
  2. objDialog.Filter = "All Files|*.*"
  3. objDialog.Flags = &H200 or &H80000
  4. objDialog.FilterIndex = 1
  5. objDialog.InitialDir = "D:"
  6. objDialog.ShowOpen
  7. Wscript.Echo objDialog.FileName
复制代码
打开效果如下:

如图中所示可以进行多选,但问题由来了,我运行了好多次就只能输出类似D:\一样的路径,根本没有文件名,于是我试试打开一个文件,结果又可以正常输出。
不知道这是为什么,突然我注意到用上面一个对话框,当选择多个文件时,文件与文件之间是用"引号隔开的,如图:

而用最上的代码出现的对话框文件名与文件名之间是用空格隔开的,如图:

若我将中的引号都人为删除时就可以输出,否则就只会输出
于是最主要的问题找到了,但由于我接触VBS才几天,学这个只是想在批处理中嵌套一些VBS完成一定的功能,所以不知道怎么解决这个问题,希望知道怎么解决这个问题的人帮帮忙!谢谢了!
(主要要解决的问题是如何让含有多对引号的变量正常输出)
发表于 2013-3-28 12:54:51 | 显示全部楼层
没有办法。UserAccounts.CommonDialog控件不支持多文件名输出的,FileName不是集合而是一个属性
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:41 , Processed in 0.018192 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表