script de shell de comando do windows

1

Esta é uma pergunta sobre o shell script do CMD, vi um script como abaixo:

FOR %%X in (java.exe javac.exe ant.bat android.bat) do (
    SET FOUND=%%~$PATH:X
    IF NOT DEFINED %FOUND% GOTO MISSING
)

Alguém pode me explicar o que é %%~$PATH:X ?

    
por anru 20.11.2012 / 21:32

2 respostas

3

%%~$PATH:X é concatenação de caminho.

%%X é o nome da variável de instância, que é definida como java.exe , javac.exe , etc., pois itera no FOR loop

O ~$PATH: entre %% e X está basicamente procurando por um arquivo chamado java.exe (ou o que quer que %%X esteja definido no momento) em cada diretório contido na variável de ambiente %PATH% .

Além disso, consulte esta pergunta do StackOverflow , que reitera a técnica e contém algumas discussões sobre ela (mas não explica termos teóricos o que sintaticamente faz). Há uma boa discussão sobre PATHEXT também.

    
por 20.11.2012 / 21:37
2

Cada diretório na variável de ambiente PATH é verificado quanto à existência do arquivo% X, e o nome do primeiro diretório correspondente é salvo em FOUND.

Digite HELP FOR no shell do CMD do Windows para obter documentos completos.

    
por 20.11.2012 / 21:38