Posso executar um arquivo de lote do Windows sem um prompt de comando visível?

Índice:

Posso executar um arquivo de lote do Windows sem um prompt de comando visível?
Posso executar um arquivo de lote do Windows sem um prompt de comando visível?

Vídeo: Posso executar um arquivo de lote do Windows sem um prompt de comando visível?

Vídeo: Posso executar um arquivo de lote do Windows sem um prompt de comando visível?
Vídeo: Como Limpar Cache dos Aplicativos em Celulares Android - YouTube 2024, Abril
Anonim
Os arquivos em lote são uma maneira prática de executar uma série de comandos no Windows, mas existe alguma maneira de executá-los invisivelmente em segundo plano? Leia em descobrir como.
Os arquivos em lote são uma maneira prática de executar uma série de comandos no Windows, mas existe alguma maneira de executá-los invisivelmente em segundo plano? Leia em descobrir como.

A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser, uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade.

A questão

Leitor SuperUser Jake quer rodar um arquivo BAT de forma invisível, ele escreve:

I have installed a ruby gem called Redcar, which is launched from the command line. When it runs, it steals the shell until it terminates, so I have to create a new shell window to continue doing command line work. The shell I’m using is the GITBash shell from MySysGit.

I found a Redcar.bat file which is meant to launch Redcar as a shortcut, I presume, but I don’t want the extra command prompt window to open whenever I launch the BAT file.

How do I just run the BAT without seeing the prompt?

Existe uma solução para o desejo rápido de Jake?

As respostas

Afrazier, colaborador do SuperUser, responde com uma combinação de boas e más notícias:

You can’t - executing a batch file with the built in Command Prompt is going to keep a window open until the batch file exits.

What you can do is take steps to make sure that the batch file exits as quickly as possible. If at all possible, modify the batch file to run whatever program with the

start

comando. Por padrão,

start

retorna imediatamente, sem esperar que o programa saia, para que o arquivo em lote continue a ser executado e, presumivelmente, saia imediatamente. Junte isso ao modificar seu atalho para executar o arquivo de lote minimizado e você verá a barra de tarefas apenas sem ver uma janela na tela.

Uma ressalva é que, se você estiver executando um programa em modo de console, que são muitos intérpretes de script, o arquivo em lote aguardará a saída do programa e o uso

start

irá gerar uma nova janela de console. O que você precisa fazer neste caso é executar a versão do interpretador baseada no Windows em vez da baseada no console - não

start

necessário. Para Perl, você executaria

wperl.exe

ao invés de

perl.exe

. Para Python, é

pythonw.exe

ao invés de

python.exe

. A antiga distribuição win32 Ruby que eu baixei tem

rubyw.exe

que deve fazer a mesma coisa.

Uma possibilidade final é usar uma ferramenta de terceiros para executar o prompt de comando com uma janela oculta. Eu já ouvi falar de tais coisas, mas nunca tive um uso para elas, então não sei de nada em particular para apontar você.

Os leitores também apontaram para outro tópico do SuperUser que destaca como você pode usar um script do Visual Basic para ir além da minimização da visibilidade e ocultar completamente o prompt do CMD. Nesse segmento, Harry MC explica:

Solution 1:

Save this one line of text as file

invisible.vbs

:

CreateObject (“Wscript.Shell”). Execute “””” & WScript.Arguments (0) & “”””, 0, False

Para executar qualquer programa ou arquivo em lote de forma invisível, use-o da seguinte maneira:

wscript.exe “C: Wherever invisible.vbs” “C: Outro Outro Lugar MyBatchFile.bat”

Para também ser capaz de passar / retransmitir uma lista de argumentos, use apenas duas aspas duplas

CreateObject (“Wscript.Shell”). Execute “” & WScript.Arguments (0) & “”, 0, False

exemplo: Invisible.vbs “Kill.vbs ME.exe”

Solução 2:

Use uma ferramenta de linha de comando para iniciar silenciosamente um processo: Silencioso.

Empregar qualquer uma das soluções acima, com base no seu nível de conforto usando VBS e ferramentas de terceiros ou não, reduzirá, no mínimo, a visibilidade da janela do CMD ou a remoção definitiva.

Tem algo a acrescentar à explicação? Soe fora nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.

Recomendado: