
Eu tenho esse arquivo em lote e ele cria um arquivo em lote na pasta de inicialização que abre uma URL específica para um site. Meu problema é que sempre que é executado ele também deixa um prompt de comando vazio aberto.
O script em lote funciona bem e abre o URL do site com o navegador da web, mas apenas deixa aberta uma janela CMD adicional que eu gostaria que não ocorresse. Nota: não estou perguntando como executar uma janela CMD em segundo plano.
Aqui está o código:
@echo off
cd C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
echo @echo off > startup.bat
echo start (link) >> startup.bat
start startup.bat
Alguém poderia ajudar a apontar o que eu poderia mudar para resolver esse problema?
Responder1
Você poderia usarCHAMARe adicione o /MIN
switch com oCOMEÇARcomando para mantê-lo mais oculto e garantir que a janela CMD desapareça durante a execuçãoda maneira como você configurou a lógica no exemplo acima.
Fiz alguns ajustes rápidos e adicionei essa lógica para você ter um exemplo exato do que usei e confirmei que funciona conforme você explica que precisa que funcione.
Exemplo de script
@echo off
CD /D C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
echo @echo off > startup.bat
echo START /MIN "" "https://google.com">> startup.bat
echo EXIT /B>> startup.bat
CALL startup.bat
EXIT /B
Recursos adicionais
Responder2
Por favor, dê uma olhada no link abaixo:
Como executar um arquivo em lote sem abrir uma “janela de comando”?
Se o link estiver inacessível, uma resposta afirma criar um script vbs que contenha o seguinte:
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Onde "your_batch_file.bat" é o nome do seu arquivo em lote.
Salve o script acima como um script visual básico, por exemplo: example.vbs e execute-o.
Responder3
aqui está o porquê e o que fazer:
por padrão, START executará o equivalente a CMD /K, que abre uma segunda janela de comando e a deixa aberta. Na maioria dos casos, você desejará que o script em lote seja concluído e, em seguida, feche o console do CMD para retomar o script em lote inicial. Isso pode ser feito executando explicitamente CMD /C ...
Echo Starting
START /wait "demo" CMD /c demoscript.cmd
Echo Done