中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 用什么命令可以调用系统“打开”对话框,选择文件夹
作者:
标题: 用什么命令可以调用系统“打开”对话框,选择文件夹 上一主题 | 下一主题
slx8528
初级用户




积分 38
发帖 39
注册 2009-1-31
状态 离线
『楼 主』:  用什么命令可以调用系统“打开”对话框,选择文件夹

用什么命令可以调用系统“打开”对话框,选择文件夹

2009-5-8 03:19
查看资料  发送邮件  发短消息 网志  OICQ (623886257)  编辑帖子  回复  引用回复
newxso
初级用户

l i u s s


积分 73
发帖 101
注册 2008-9-17
来自 GZ
状态 离线
『第 2 楼』:  


@echo off
Wfolder2 "SET Folder=" "C:" "选择文件夹" > temp.bat
call temp.bat
del temp.bat
echo.%Folder%
pause


如果不想用第三方工具,可以用以下VBS:

Const COMPUTER = &H11&
Const WINDOW_HANDLE = 0
Const OPTIONS = 0

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(COMPUTER)
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "打开一个文件夹:", OPTIONS, strPath)
      
If objFolder Is Nothing Then
    Wscript.echo "你没有选取一个文件夹!"
    Wscript.Quit
End If

Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
Wscript.Echo objPath
'设置默认打开的目录:
'  COMPUTER = &H31& 表示默认打开“网络连接”
'  COMPUTER = &H30& 表示默认打开“管理工具”
'  COMPUTER = &H29& 表示默认打开“system32”
'  COMPUTER = &H28& 表示默认打开“C:\Documents and Settings\Administrator”
'  COMPUTER = &H27& 表示默认打开“My Pictures(我的文档中的图片收藏)”
'  COMPUTER = &H26& 表示默认打开“Program Files”
'  COMPUTER = &H25& 表示默认打开“system32”
'  COMPUTER = &H24& 表示默认打开“WINDOWS”
'  COMPUTER = &H23& 表示默认打开“Application Data”
'  COMPUTER = &H22& 表示默认打开“History”
'  COMPUTER = &H21& 表示默认打开“Cookies”
'  COMPUTER = &H20& 表示默认打开“Temporary Internet Files”
'  COMPUTER = &H19& 表示默认打开“桌面(Administrator)”
'  COMPUTER = &H18& 表示默认打开“启动(All Users)”
'  COMPUTER = &H17& 表示默认打开“程序(All Users)”
'  COMPUTER = &H16& 表示默认打开“「开始」菜单”
'  COMPUTER = &H15& 表示默认打开“Templates”
'  COMPUTER = &H14& 表示默认打开“Fonts”
'  COMPUTER = &H13& 表示默认打开“NetHood”
'  COMPUTER = &H12& 表示默认打开“网上邻居”
'  COMPUTER = &H11& 表示默认打开“我的电脑”
'  COMPUTER = &H10& 表示默认打开“桌面(Administrator)”
'  COMPUTER = &H9&  表示默认打开“SendTo”即右键中的“发送到”
'  COMPUTER = &H8&  表示默认打开“我最近的文档”
'  COMPUTER = &H7&  表示默认打开“启动(Administrator)”
'  COMPUTER = &H6&  表示默认打开“收藏夹(Favorites)”
'  COMPUTER = &H5&  表示默认打开“我的文档”
'  COMPUTER = &H4&  表示默认打开“打印机和传真”
'  COMPUTER = &H3&  表示默认打开“控制面板”
'  COMPUTER = &H2&  表示默认打开“程序(Administrator)”
'  COMPUTER = &H0&  表示默认打开“桌面(Administrator)”


把这个VBS应用到批处理上:

@echo off
(
echo Set objShell=CreateObject^("Shell.Application"^)
echo Set objFolder=objShell.BrowseForFolder _
echo ^(WINDOW_HANDLE,"选择一个文件夹:",OPTIONS,"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"^)
echo If objFolder Is Nothing Then Wscript.Quit
echo Set objFolderItem=objFolder.Self
echo Wsh.Echo objFolderItem.Path
)>BrowseFolder.vbs

for /f "delims=" %%a in ('cscript //nologo BrowseFolder.vbs') do set strFolder=%%a
del BrowseFolder.vbs

echo.%strFolder%
explorer "%strFolder%"
pause


[ Last edited by newxso on 2009-5-8 at 22:35 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 slx8528 分数: +2  时间:2009-5-8 04:25


附件 1: Wfolder2.rar (2009-5-8 04:08, 4.2 K,下载次数: 40)
2009-5-8 04:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slx8528
初级用户




积分 38
发帖 39
注册 2009-1-31
状态 离线
『第 3 楼』:  

谢谢,真是太全啦

2009-5-8 04:24
查看资料  发送邮件  发短消息 网志  OICQ (623886257)  编辑帖子  回复  引用回复
zgrhcf
初级用户




积分 29
发帖 20
注册 2009-4-15
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by newxso at 2009-5-8 04:08:

@echo off
Wfolder2 "SET Folder=" "C:" "选择文件夹" > temp.bat
call temp.bat
del temp.bat
echo.%Folder%
pause


如 ...

谢谢二楼,收下备用了。

2009-5-10 01:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: