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
-
Abra o Powershell: Você pode começar abrindo seu aplicativo do Powershell. Você pode procurar por “Powershell” na barra de pesquisa do Windows.
-
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.
- Desmembrando o Comando:
-
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!