Ir ao conteúdo
  • Cadastre-se

CaioMarcio

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. Escolhendo a opção SI (Inicializar somente o IIS) entra na opção PD (Finalizar o IIS e descarrega as DLLs). Alterei o BAT usando vários IFs para a variável %1, ele executa certo quando escolho a opção SP, mas quando chega no final, em vez de finalizar carrega tela para escolher o ambiente e executa novamente.
  2. Olá Ricardo, A opção do FOR funcionou legal. Tentei fazer uma adaptação dela e coloquei uns ECHOs para verificar se estava mostrando o processo correto, mas o layout que fiz deu erro logo no começo (mostrou as variáveis até o primeiro PAUSE, mostrando a tela abaixo: Etapa inicial Passagem de parametros ====================== Acao ................: Ambiente ............: Variaveis fixas ====================== chrAspas ............: " CamComponentesP .....: C:\Projetos\Prodesp - FPagto - E-Folha\3 - Especificação e Desenvolvimento\3.Fonte\Componentes\ CamComponentesE .....: C:\Projetos\Prodesp - FPagto - E-Folha\3 - Especificação e Desenvolvimento\3.Fonte\Web\DLL\ Variaveis carregadas de acordo com a acao ========================================= StatusInstrucao .....: Start_Stop_IIS_Status: DescAcao ............: Start_Stop_IIS_Codido: CodAmbiente .........: Pressione qualquer tecla para continuar. . . carregar foi inesperado neste momento. O BAT que estou fazendo é para 4 opções de ação: SI => Somente para Inicializar o IIS; CI => Carregar (registrar) algumas DLLs e Inicializar o IIS; SP => Somente para Parar o IIS; PD => Parar o IIS e descarregar (desregistrar) as mesmas DLLs. Segue o bloco que deve identificar a ação selecionada (se não passo nenhum parâmetro, mostra-se uma tela com as opções) , atribuir valores a algumas variáveis e, conforme o caso, direcionar o processo para alguma LABEL: echo Etapa inicial echo. echo Passagem de parametros echo ====================== echo Acao ................: %1 echo Ambiente ............: %2 echo. echo Variaveis fixas echo ====================== echo chrAspas ............: %chrAspas% echo CamComponentesP .....: %CamComponentesP% echo CamComponentesE .....: %CamComponentesE% echo. echo Variaveis carregadas de acordo com a acao echo ========================================= echo StatusInstrucao .....: %StatusInstrucao% echo Start_Stop_IIS_Status: %Start_Stop_IIS_Status% echo DescAcao ............: %DescAcao% echo Start_Stop_IIS_Codido: %Start_Stop_IIS_Codigo% echo CodAmbiente .........: %CodAmbiente% pause IF /I "%1" == "" ( ECHO Parametro da acao nao informado echo =============================== echo. SET echo. echo Sera aberta a janela para escolher a acao echo. echo. pause GOTO Start_Stop_IIS_Vazio ) ELSE ( SET Start_Stop_IIS_Codigo=%1 echo Parametro da acao informado echo =========================== echo. echo Passado: %1 - Variavel carregada: %Start_Stop_IIS_Codigo% echo. SET echo. echo Serao carregadas as variaveis para identificar instrucao para (des)carregar DLLs e a descricao da acao (start/stop) echo. echo. pause FOR %%a IN (CI SI) DO ( IF /I "%1" == "%%a" ( SET StatusInstrucao= SET DescAcao=Start echo Parametro da acao para inicializar o IIS escolhido echo ================================================== echo. echo O valor e o: %%a (SI: so inicia e CI: carrega DLLs e inicia) echo. SET echo. echo Se for so inicializar vai direto para a instrucao no final (ultima), caso contrario inicia e carrega DLLs echo. echo. pause ) ELSE ( SET StatusInstrucao=/u SET DescAcao=Stop echo Parametro da acao para finalizar o IIS escolhido echo ================================================ echo. echo O valor e o: %%a (SP: so finaliza e PD: descarrega DLLs e finaliza) echo. SET echo. echo Se for so finalizar vai direto para a instrucao no final (ultima), caso contrario descarrega DLLs e finaliza echo. echo. pause ) ) echo Variaveis que identificaram a acao echo ================================== echo. echo StatusInstrucao: %StatusInstrucao% echo DescAcao ......: %DescAcao% echo. pause ) FOR %%b IN (SI SP) DO ( IF /I "%1" == "%%b" ( echo A acao (%%b) e somente para %DescAcao% e ira somente executar o programa IISReset com o parametro /%DescAcao% echo. echo. GOTO AcaoUnica ) ) IF /I "%2" == "" (GOTO AmbienteVazio) ELSE (SET CodAmbiente=%2) SET Start_Stop_IIS_Status=OK Essa estrutura está com algum erro? Obrigado pela atenção adicionado 55 minutos depois Olá Ricardo, O problema era os (), a mais que coloquei nos ECHOs, aparentemente funcionou, mas deu erro em outra parte, talvez o posicionamento do último FOR. Vou fazer outras mudanças e aviso. Obrigado.
  3. A minha intenção era evitar ter que ficar reescrevendo IFs para várias condições. Se, por acaso, precisar acrescentar outros 50 valores semelhantes ao CI teria que acrescentar 50 linhas no BAT.
  4. Estou montando um arquivo BAT que contém uma instrução IF que, de acordo com uma condição, ela executa dois comandos. A linha, que com uma condição funciona normalmente, é a seguinte: IF /I "%1" == "CI" (SET StatusInstrucao= & SET DescAcao=Start) ELSE (SET StatusInstrucao=/u & SET DescAcao=Stop) Preciso acrescentar outras duas condições similares (mas opostas entre si) nessa instrução que são SI (parecida com a CI) e SP. Tentei a instrução abaixo para não ficar digitando várias linhas praticamente iguais: IF /I "%1" == "CI" OR "%1" == "SI" (SET StatusInstrucao= & SET DescAcao=Start) ELSE (SET StatusInstrucao=/u & SET DescAcao=Stop) Não dá erro na execução do BAT mas não são atribuídas as variáveis quando passo ao BAT a opção SI. Já coloquei as condições entre () uma a uma ou as duas juntas. O IF não aceita o OR ou AND para quando se tem mais de uma condição?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...