Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件中的If语句执行If和else块_Batch File_If Statement - Fatal编程技术网

Batch file 批处理文件中的If语句执行If和else块

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

我正在尝试编写一个启动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://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 (