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

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

在网上查到可以选择多个文件的对话框,代码如下:
  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
复制代码
效果如下:
[attach]6217[/attach]

对话框选择区太小,不好查找文件,于是在网上找资料,终于让我找到了,就是在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
复制代码
打开效果如下:
[attach]6219[/attach]
如图中所示可以进行多选,但问题由来了,我运行了好多次就只能输出类似D:\一样的路径,根本没有文件名,于是我试试打开一个文件,结果又可以正常输出。
不知道这是为什么,突然我注意到用上面一个对话框,当选择多个文件时,文件与文件之间是用"引号隔开的,如图:
[attach]6218[/attach]
而用最上的代码出现的对话框文件名与文件名之间是用空格隔开的,如图:
[attach]6220[/attach]
若我将[attach]6218[/attach]中的引号都人为删除时[attach]6222[/attach]就可以输出[attach]6223[/attach],否则就只会输出[attach]6221[/attach]
于是最主要的问题找到了,但由于我接触VBS才几天,学这个只是想在批处理中嵌套一些VBS完成一定的功能,所以不知道怎么解决这个问题,希望知道怎么解决这个问题的人帮帮忙!谢谢了!
(主要要解决的问题是如何让含有多对引号的变量正常输出)

没有办法。UserAccounts.CommonDialog控件不支持多文件名输出的,FileName不是集合而是一个属性
---学无止境---

TOP

返回列表