打开浏览器以从CMD中选择文件

时间:2013-09-17 13:30:28

标签: windows user-interface batch-file cmd

我目前正在开发一个带有批处理文件的小型项目安装程序。

我的批处理文件首先检查是否在环境变量中定义了JAVA_HOME。如果不是,我希望能够打开一个资源管理器,以便用户可以选择他的JAVA文件夹的路径。 我想问的另一个选择是,如果有人知道一个漂亮的GUI界面(非java和开源),所以我提示用户选择他的JAVA文件夹并设置JAVA_HOME (我知道我可以通过命令提示符提示用户输入路径)

以下是一个例子

IF "%JAVA_HOME%" == "" (
echo JAVA_HOME was not set, please enter path to JAVA folder: 
set /p JAVA_HOME= ---> PROMPT GUI FOR SELECTION

谢谢你的任何建议

1 个答案:

答案 0 :(得分:0)

这是来自我曾经躲过的Usenet帖子。

来自:“马特威廉姆森”
新闻组:alt.msdos.batch.nt
主题:回复:通过VBScript发送电子邮件
日期:星期一,2007年7月16日09:58:19 -0400

@echo off
:BrowseFolder
set Result=
set input=%1

:: Temporary files
set vbs=%temp%\_.vbs
set tmp=%temp%\_.cmd

:: Build VBScript file
findstr "'%skip%VBS" "%~f0" > "%vbs%"

:: Run the script with WSH
cscript //nologo "%vbs%" > "%tmp%"

:: Read the output file and set Path as Env variable %Result%
for /f "delims=" %%a in (%tmp%) do %%a

echo %result% & pause
DEL %VBS%
DEL %TMP%

endlocal & goto :EOF

'
'.......................................................
'The Visual Basic Script
'
set WshShell=WScript.CreateObject("WScript.Shell") 'VBS
set shell=WScript.CreateObject("Shell.Application") 'VBS
sInput=WshShell.ExpandEnvironmentStrings("%input%") 'VBS
set folder=shell.BrowseForFolder(0,replace(sInput,chr(34),""),0) 'VBS
if typename(folder)="Nothing" Then  'VBS
wscript.echo "set Result=Dialog Cancelled" 'VBS
WScript.Quit(1) 'VBS
end if 'VBS
set folderItems=folder.Items() 'VBS
set folderItem=folderItems.Item() 'VBS
pathname=folderItem.Path 'VBS
wscript.echo "set Result="& chr(34) & pathname & chr(34) 'VBS