none
Script para instalação de programas em massa RRS feed

  • Pergunta

  • Olá!

    Estou criando um arquivo BAT para instalação de um pacote padrão de programas, na realidade, o script já está pronto, porém estou querendo melhorar ele, através da verificação se foi criado determinado arquivo após a instalação de determinado programa.

    if exist "%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe" (
        echo Adobe Reader instalado.

    ) else (
        echo Erro na instalação.
    )

    Só que agora, eu tenho que colocar outros programas dentro de um mesmo IF, para os demais aplicativos, como: Winrar, Avast, Office, Skype, MSN. Porém, não sei se é possivel fazer um 'else if' ou 'if else', não lembro ao certo, como é usado na linguagem C.

    Porque logo após testar o Adobe, e a sentença for correta, ele deverá passar para um outro 'if' dentro deste mesmo do Adobe. porém terei que por 'else' para todos os 'if's ou apenas um else no final?


    Jonas Moura

    terça-feira, 10 de abril de 2012 14:50

Respostas

  • Jonas,

    Em scripts .BAT não existe o ELSE IF, você vai ter que aninhar os IFs.

    Exemplo

    if exist "%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe" (
    	echo Adobe Reader instalado.
    	IF EXIST "%ProgramFiles%\Winrar" (
    		echo WinRar Instalado
    	)else(
    		echo winrar não instalado.
    	)
    	
     
    ) else (
         echo Erro na instalação.
    )

    mas desta forma que vc explicou parece que só testa o Winrar se já tem o Adobe.

    Geralmente isto é feito de forma independente então ficaria assim (IFs não aninhados)

    if exist "%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe" (
    	echo Adobe Reader instalado.
    ) else (
         echo Erro na instalação.
    )
    
    IF EXIST "%ProgramFiles%\Winrar" (
    	echo WinRar Instalado
    )else(
    	echo winrar não instalado.
    )


    Fábio de Paula Junior


    • Editado Fábio JrModerator terça-feira, 10 de abril de 2012 15:34 obs
    • Marcado como Resposta Jonas Moura quarta-feira, 11 de abril de 2012 13:11
    terça-feira, 10 de abril de 2012 15:31
    Moderador
  • Para sair do script vc pode utilizar EXIT ou a forma que gosto mais que é:

    goto :EOF

    Aplicando no seu exemplo

    if exist "%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe" (
    	echo Adobe Reader instalado.
    	IF EXIST "%ProgramFiles%\Winrar" (
    		echo WinRar Instalado
    	)else(
    		GOTO :EOF
    	)
    	
     
    ) else (
         GOTO :EOF
    )

    Neste caso se o adobe não estiver instalado ele vai sair do script, na realidade neste exemplo isso não faz muito sentido porque não tem mais código depois deste if.


    Fábio de Paula Junior

    • Marcado como Resposta Jonas Moura quarta-feira, 11 de abril de 2012 13:11
    terça-feira, 10 de abril de 2012 17:35
    Moderador

Todas as Respostas

  • Jonas,

    Em scripts .BAT não existe o ELSE IF, você vai ter que aninhar os IFs.

    Exemplo

    if exist "%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe" (
    	echo Adobe Reader instalado.
    	IF EXIST "%ProgramFiles%\Winrar" (
    		echo WinRar Instalado
    	)else(
    		echo winrar não instalado.
    	)
    	
     
    ) else (
         echo Erro na instalação.
    )

    mas desta forma que vc explicou parece que só testa o Winrar se já tem o Adobe.

    Geralmente isto é feito de forma independente então ficaria assim (IFs não aninhados)

    if exist "%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe" (
    	echo Adobe Reader instalado.
    ) else (
         echo Erro na instalação.
    )
    
    IF EXIST "%ProgramFiles%\Winrar" (
    	echo WinRar Instalado
    )else(
    	echo winrar não instalado.
    )


    Fábio de Paula Junior


    • Editado Fábio JrModerator terça-feira, 10 de abril de 2012 15:34 obs
    • Marcado como Resposta Jonas Moura quarta-feira, 11 de abril de 2012 13:11
    terça-feira, 10 de abril de 2012 15:31
    Moderador
  • Jonas,

    Em scripts .BAT não existe o ELSE IF, você vai ter que aninhar os IFs.

    Exemplo

    if exist "%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe" (
    	echo Adobe Reader instalado.
    	IF EXIST "%ProgramFiles%\Winrar" (
    		echo WinRar Instalado
    	)else(
    		echo winrar não instalado.
    	)
    	
     
    ) else (
         echo Erro na instalação.
    )

    mas desta forma que vc explicou parece que só testa o Winrar se já tem o Adobe.

    Geralmente isto é feito de forma independente então ficaria assim (IFs não aninhados)

    if exist "%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe" (
    	echo Adobe Reader instalado.
    ) else (
         echo Erro na instalação.
    )
    
    IF EXIST "%ProgramFiles%\Winrar" (
    	echo WinRar Instalado
    )else(
    	echo winrar não instalado.
    )


    Fábio de Paula Junior


    Porém deste modo que você fez, ao passar pelo IF, sendo verdadeira a sentença do Adobe, o próximo teste será o do Winrar? E caso dê sentença falsa no IF do Adobe (Não instalado) eu quero que o script pare, ou feche o scrip. Posso por um 'goto' apontando para um 'exit'?

    Jonas Moura

    terça-feira, 10 de abril de 2012 16:42
  • Para sair do script vc pode utilizar EXIT ou a forma que gosto mais que é:

    goto :EOF

    Aplicando no seu exemplo

    if exist "%ProgramFiles%\Adobe\Reader 10.0\Reader\AcroRd32.exe" (
    	echo Adobe Reader instalado.
    	IF EXIST "%ProgramFiles%\Winrar" (
    		echo WinRar Instalado
    	)else(
    		GOTO :EOF
    	)
    	
     
    ) else (
         GOTO :EOF
    )

    Neste caso se o adobe não estiver instalado ele vai sair do script, na realidade neste exemplo isso não faz muito sentido porque não tem mais código depois deste if.


    Fábio de Paula Junior

    • Marcado como Resposta Jonas Moura quarta-feira, 11 de abril de 2012 13:11
    terça-feira, 10 de abril de 2012 17:35
    Moderador