Batch file 批处理文件中的If语句执行If和else块
我正在尝试编写一个启动java应用程序的批处理文件。如果用户计算机上未安装Java,则根据操作系统的不同,使用提供的Java版本启动应用程序 问题在于,语句的Batch file 批处理文件中的If语句执行If和else块,batch-file,if-statement,Batch File,If Statement,我正在尝试编写一个启动java应用程序的批处理文件。如果用户计算机上未安装Java,则根据操作系统的不同,使用提供的Java版本启动应用程序 问题在于,语句的IF和ELSE部分都会像该语句不存在一样执行 IF DEFINED %JAVA_HOME%( Echo staring with installed java version ) ELSE ( REM check if computer is running 32 or 64 bit REM code from http://suppo
IF
和ELSE
部分都会像该语句不存在一样执行
IF DEFINED %JAVA_HOME%(
Echo staring with installed java version
) ELSE (
REM check if computer is running 32 or 64 bit
REM code from http://support.microsoft.com/kb/556009/en-us
Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry% > checkOS.txt
Find /i "x86" < CheckOS.txt > StringCheck.txt
If %ERRORLEVEL% == 0 (
Echo starting with 32bit java
Set JAVA_HOME=bin\java\jdk1.7.0_13\bin
) ELSE (
Echo starting with 64bit java
Set JAVA_HOME=bin\java64\jdk1.7.0_13\bin
)
DEL checkOS.txt
DEL StringCheck.txt
)
START %JAVA_HOME%\javaw [java arguments]
如果定义了%JAVA\u HOME%(
Echo已安装java版本
)否则(
REM检查计算机运行的是32位还是64位
REM代码来自http://support.microsoft.com/kb/556009/en-us
设置RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe查询%RegQry%>checkOS.txt
查找/i“x86”StringCheck.txt
如果%ERRORLEVEL%==0(
以32位java开始的Echo
设置JAVA\u HOME=bin\JAVA\jdk1.7.0\u 13\bin
)否则(
以64位java开始的Echo
设置JAVA\u HOME=bin\java64\jdk1.7.0\u 13\bin
)
DEL checkOS.txt
DEL StringCheck.txt
)
启动%JAVA\u HOME%\javaw[JAVA参数]
在开始括号前需要一个空格。为了检查是否定义了变量,不应使用**%**es。试试这个->
IF DEFINED JAVA_HOME (
而且java没有在windows系统上设置%java\u HOME%变量。也请检查谢谢,问题出在
%
es上。在我的情况下,寻找JAVA_HOME就足够了。
IF DEFINED JAVA_HOME (