中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 18:53
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 用什么命令可以调用系统“打开”对话框,选择文件夹 查看 1,625 回复 3
楼 主 用什么命令可以调用系统“打开”对话框,选择文件夹 发表于 2009-05-08 03:19 ·  中国 甘肃 兰州 电信
初级用户
积分 38
发帖 39
注册 2009-01-31 10:43
17年会员
UID 137685
性别 男
状态 离线
用什么命令可以调用系统“打开”对话框,选择文件夹
2 发表于 2009-05-08 04:08 ·  中国 广东 广州 番禺区 电信
初级用户
★★
l i u s s
积分 73
发帖 101
注册 2008-09-17 00:21
17年会员
UID 125825
性别 男
来自 GZ
状态 离线

@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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
slx8528 +2 2009-05-08 04:25
附件
Wfolder2.rar (4.2 KiB, 下载次数: 40)
3 发表于 2009-05-08 04:24 ·  中国 甘肃 兰州 电信
初级用户
积分 38
发帖 39
注册 2009-01-31 10:43
17年会员
UID 137685
性别 男
状态 离线
谢谢,真是太全啦
4 发表于 2009-05-10 01:59 ·  中国 重庆 电信
初级用户
积分 29
发帖 20
注册 2009-04-15 00:56
17年会员
UID 142960
性别 男
状态 离线
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


如 ...

谢谢二楼,收下备用了。
论坛跳转: