Usuário com melhor resposta
Script para instalação de programas em massa

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
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
-
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
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
-
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
Jonas Moura
-
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