【问题标题】:Opening a browser to select a file from CMD打开浏览器从 CMD 中选择文件
【发布时间】:2013-09-21 23:24:04
【问题描述】:
我目前正在开发一个带有批处理文件的小型项目安装程序。
我的批处理文件首先检查 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
感谢您的任何建议
【问题讨论】:
标签:
windows
user-interface
batch-file
cmd
【解决方案1】:
这是来自我已经隐藏起来的 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