Caminho com erro de espaço

0

Estou tentando buscar meu caminho java jdk usando um script em lote. Aqui está o que eu tenho até agora:

@echo off
for /f %%j in ("java.exe") do (
    set JAVA_HOME=%%~dp$PATH:j
)

if "%JAVA_HOME%".==. (
    @echo Java.exe not found
    @echo Please make sure that java JDK 1.7 or 1.8 is installed
)

Na instrução if, uma vez que o caminho está em C: \ Arquivos de Programas \ Arquivos Comuns \ etc .., recebo o erro Comum não era esperado neste momento. No entanto, a condição IF não funciona corretamente se o Java não for encontrado.

Se eu remover o "" JAVA_HOME ao redor, recebo um erro que Arquivos não era esperado no momento. Nesse caso, a condição IF funciona corretamente se o JAVA.exe for encontrado.

Por que é permitido o espaço ou o '\' em \ Arquivos de programas e parar depois?

    
por user938644 30.08.2018 / 09:59

2 respostas

0

i tried your suggestion and it displays \Common was not expected

Copiar do console:

C:\tmp>del test.bat

C:\tmp>copy con test.bat
@echo off
for /f %%j in ("java.exe") do (
    set JAVA_HOME=%%~dp$PATH:j
)

if "%JAVA_HOME%"=="" (
    @echo Java.exe not found
    @echo Please make sure that java JDK 1.7 or 1.8 is installed
) else (
    @echo Java.exe exists in "%JAVA_HOME%"
)
^Z
Files copied:         1.

C:\tmp>test
Java.exe exists in "C:\Program Files (x86)\Common Files\Oracle\Java\javapath\"

Emular a ausência - JAVA.EXE substituído por ZZZ.EXE:

C:\tmp>del test.bat

C:\tmp>copy con test.bat
@echo off
for /f %%j in ("ZZZ.exe") do (
    set JAVA_HOME=%%~dp$PATH:j
)

if "%JAVA_HOME%"=="" (
    @echo Java.exe not found
    @echo Please make sure that java JDK 1.7 or 1.8 is installed
) else (
    @echo Java.exe exists in "%JAVA_HOME%"
)
^Z
Files copied:         1.

C:\tmp>test
Java.exe not found
Please make sure that java JDK 1.7 or 1.8 is installed

C:\tmp>
    
por 30.08.2018 / 15:34
0

Ao construir o caminho, coloque aspas duplas " em volta de cada entrada individual no caminho.

Por exemplo:

export XPATH="c:\Program Files\foo":"C:\Program Files\bar"
    
por 30.08.2018 / 16:30

Tags