Prompt de comando: execute scripts em segundo plano (equivalente ao & / bg do Linux)

23

No Linux, você pode fazer isso:

$ php blah.php> some.log &

para executar blah.phpem segundo plano. É o mesmo que Ctrl+ ze o bgcomando.

Existe um equivalente de um ou de ambos no prompt de comando do Windows?

DOOManiac
fonte
1
Não acredito que exista, mas você pode iniciar quantos prompts de comando forem necessários. O que você está tentando realizar?
precisa saber é o seguinte
Estou usando> para fazer logon em um arquivo e não quero solicitar apenas que fique lá fora. Talvez eu queira continuar trabalhando na mesma janela de prompt com o mesmo diretório.
DOOManiac
Qual versão do Windows?
precisa
Windows 7 (64 bits)
DOOManiac 27/08/2012

Respostas:

41

O Windows tem uma funcionalidade semelhante à do Linux &, para iniciar processos de modo que eles não dominem seu console. Em vez de um sinalizador de linha de comando, é um prefixo de comando.

Simplesmente execute seu comando startna frente, como tal: C:\> start myprog.exe

Também funciona com comandos, não apenas executáveis: C:\> start dir

Isso iniciará uma nova janela do console e executará o comando dentro dela.

Se você não deseja que uma nova janela do console apareça ao executar o comando, use o /Bswitch da seguinte maneira: C:\> start /B myprog.exe

Existem várias outras opções que você pode especificar para configurar como executar o comando. Você pode descobrir isso lendo a ajuda startusando start /?.

Ben Richards
fonte
1

Isso pode executar um arquivo em segundo plano no prompt de comando ou em um arquivo em lotes

@Echo off
Echo Set WshShell = CreateObject("WScript.Shell")   >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "MyFile" ^& Chr(34), 0 >>%temp%\ghost.vbs
Echo Set WshShell = Nothing                         >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs

Agora substitua MyFilepelo arquivo que você deseja executar em segundo plano.

Anthony
fonte
2
(1) Você pode explicar como isso funciona (um pouco)? (2) Fundamentalmente, isso usa o startcomando. Ele cria uma coisa intermediária que executa o comando do usuário e, em seguida, usa o startcomando para iniciar a coisa intermediária. Portanto, é uma máquina Rube Goldberg . Como isso é melhor do que a outra resposta, que sugere o uso startdireto? (3) A pergunta mostra o redirecionamento de E / S ( > some.log). Como o usuário faria o redirecionamento de E / S com esta resposta? Coloque-o na linha de comando ou construa-o WshShell.Runna linha do script?
Scott
Não responda nos comentários; edite sua resposta para torná-la mais clara e completa.
Scott