Como Fazer o Powershell Executar um Arquivo em Lote e Permanecer Aberto

Se você está transplantando do antigo prompt de comando para o Powershell, pode ter encontrado um pequeno contratempo: como executar um arquivo em lote e manter a janela do Powershell aberta após a execução. Esse processo pode ser útil quando você deseja continuar trabalhando com a saída ou verificar algum detalhe sem precisar executar o arquivo em lote novamente. Neste post, explicaremos como alcançar isso com facilidade.

O Problema Comum

No ambiente clássico do Prompt de Comando, você poderia executar um arquivo em lote e manter a janela aberta usando o comando:

cmd.exe /k mybatchfile.bat

Isso executaria seu script mybatchfile.bat e deixaria o prompt de comando disponível para novos comandos. No entanto, com o Powershell, a situação é um pouco diferente, e nós iremos delinear a solução para você.

A Solução: Usando o Parâmetro -noexit

A chave para manter a janela do Powershell aberta está em utilizar o parâmetro -noexit ao chamar o Powershell. Veja como fazer isso passo a passo:

Instruções Passo a Passo

  1. Abra o Powershell: Você pode começar abrindo seu aplicativo do Powershell. Você pode procurar por “Powershell” na barra de pesquisa do Windows.

  2. Digite o Comando: Digite o seguinte comando na janela do Powershell:

    powershell -noexit -command "& 'C:\caminho\para\seu\mybatchfile.bat'"
    
    • Desmembrando o Comando:
      • powershell: Isso invoca o próprio Powershell.
      • -noexit: Esse parâmetro garante que a sessão do Powershell permaneça aberta após a execução do comando.
      • -command: Isso informa ao Powershell que você deseja executar um comando.
      • & 'C:\caminho\para\seu\mybatchfile.bat': Essa parte executa seu arquivo em lote.
  3. Modifique o Caminho do Arquivo: Certifique-se de substituir C:\caminho\para\seu\mybatchfile.bat pelo caminho real do seu arquivo em lote em seu sistema.

Exemplo

Vamos supor que seu arquivo em lote esteja localizado em C:\Scripts\mybatchfile.bat. Você digitaria:

powershell -noexit -command "& 'C:\Scripts\mybatchfile.bat'"

Resultado

Seguindo essas instruções, você deverá ver o arquivo em lote ser executado, e a janela do Powershell permanecerá aberta, permitindo que você insira mais comandos conforme necessário. Este método é uma maneira direta de integrar arquivos em lote ao seu fluxo de trabalho no Powershell sem precisar começar do zero a cada vez.

Considerações Finais

Usar o parâmetro -noexit é uma maneira simples, mas eficaz, de executar arquivos em lote no Powershell enquanto mantém sua sessão ativa. Isso permite um processo de trabalho mais suave e flexível à medida que você gerencia scripts e comandos.

Se você tiver mais perguntas ou encontrar qualquer problema, sinta-se à vontade para entrar em contato! Boas edições!