1

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

我的批处理文件首先检查 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

谢谢你的任何建议

4

1 回答 1

0

这是来自我已经隐藏起来的 Usenet 帖子。

来自:“Matt Williamson”
新闻组: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
于 2013-09-17T16:22:29.640 回答