Como executar o Cmd.exe silenciosamente?

23

Eu uso o código abaixo na caixa de diálogo Executar do Windows XP.

cmd /c "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe"

Você pode substituir o caminho do programa por qualquer programa instalado no seu sistema. O problema é que o Photoshop é iniciado, mas a janela do cmd.exe ainda permanece. Eu não quero o arquivo cmd.exe pop-up. É possível iniciar um programa via cmd sem abrir uma janela do cmd.exe? Eu preciso trabalhar cmd silenciosamente. BTW, eu preciso desse código para um programa. Então, eu preciso iniciar o programa via cmd, mas sem a janela do cmd.exe aparecer.

Comentários adicionais

Porque eu vou usar esse código em um programa. Programa pode iniciar o cmd exe. Mas o problema é que não sabemos qual versão do Photoshop está instalada. Portanto, pode ser o Photoshop CS4 ou Photoshop CS5. Normalmente, quando você digita o código abaixo em Executar, você obtém o Photoshop, não importa qual esteja instalado.

photoshop

Então, eu quero iniciar o Photoshop com este método. O programa iniciará o cmd como Executar acima, mas algo como abaixo:

cmd /c photoshop

Mas não funciona. E até a janela cmd aparece. Quero que o processo seja executado silenciosamente. Também não devemos instalar nenhuma outra ferramenta. Eu quero uma solução que funcione em um Windows padrão.

BinaryMisfit
fonte
6
Por que usar o cmd.exe em vez de iniciar o Photoshop diretamente, se você não deseja o CMD?
CarlF 21/09/10
Tente cmd.exe / q / c [comando]
qroberts 21/09
Não, isso não vai funcionar. Tente você! Além disso, seria o comando / q / c se alguma coisa cmd / q / c "c: \ arquivos de programas \ microsoft office \ office11 \ winword.exe" Observe que a janela de comando é exibida. Ele não quer isso. Se você tivesse tentado, você saberia disso !!
barlop 21/09/10
3
Não há necessidade de ficar chateado com isso. Além disso, o questionador é uma mulher, não um homem.
qroberts
1
CMDOW supostamente faz isso.
CGA

Respostas:

22

O problema é que o prompt de comando (cmd) não pode ser finalizado - ele fica preso na tela aguardando a finalização do Photoshop.

Para iniciar o Photoshop em um arquivo bat e deixar o arquivo em lotes continuar e terminar, use o comando start , que inicia um programa ou comando especificado em uma janela separada .

Por exemplo:

start "" "C:\Program Files\Adobe\Adobe Photoshop CS4\Photoshop.exe"
harrymc
fonte
3
o comando start não é executado em uma janela de comando? nesse caso, uma janela de comando seria exibida. Eu acho que uma vez no cmd.exe, a única vantagem a ser iniciada, é que ele permite que você escolha se deseja minimizá-lo ou maximizá-lo .. mas se ele não o desejar, como isso ajudaria? E se estiver usando start from cmd.exe, ele também poderá digitar o caminho do programa sem iniciar.
barlop 21/09/10
@ Barlop: sem iniciar, o script é congelado até o programa terminar. Com o início, o script pode terminar e desaparecer.
harrymc
por interesse, o que você quer dizer com script .. você quer dizer que eles iniciam blah.vbs "c: \ .... \ photoshop.exe"? e tendo blah.vbs (um arquivo de script) iniciá-lo?
barlop 21/09/10
@ Barlop: Eu apenas quis dizer o antigo e verdadeiro arquivo bat, que eu assumo é o que o cartaz usa. Mudei script-> arquivo bat.
harrymc
5

HSTART http://www.ntwind.com/software/utilities/hstart.html

Você pode fazer

  • Comece a correr
  • c:\hstart\hstart.exe /NOCONSOLE "cmd /c "c:\program files\microsoft office\office11\winword.exe""

ou crie um ícone.

Alguns o usam para executar arquivos bat .. (outros o fazem a partir de um vbs que também pode executá-lo cmd.exee ocultar a janela de comando) .. mas você pode usá-lo hstart.

No entanto, eu ecoo outros, já que você está executando um EXE, se você iniciar..run..pathofexe ou criar um ícone para ele, um prompt de comando não será iniciado. Então, por que você deseja iniciá-lo a partir do cmd.exe?

Além disso, observe .. nos dos e windows você usa barras invertidas nos caminhos de diretório. As barras de encaminhamento são para URLs ou caminhos de diretório em unix ou linux.

barlop
fonte
Você sabe o que hstartestá fazendo? Como está ocultando a janela criada?
Ross Rogers
1
@RossRogers Eu não sei, mas talvez o API Monitor lhe diga apimonitor.com e também, o vbscript também pode ocultar uma janela. superuser.com/questions/62525/run-a-completly-hidden-batch-file e que mencione um programa chamado Quiet, deste site joeware.net joeware.net/freetools/tools/quiet/index.htm, que menciona que seu programa usa ShellExecuteEx para fazer isso.
barlop
3

A melhor opção é perguntar o que você está tentando fazer. Se você precisar do 'código' de um programa, por que não usa o Shell execute?

E não consigo imaginar qual fluxo de trabalho legítimo exigiria a chamada da linha de comando, que por sua vez executaria um executável.

Devdatta Tengshe
fonte
3

Existe uma ferramenta chamada Quiet que você pode usar para fazer isso. Basta passar o arquivo .exe ou .bat para ele como argumento. Para isso, basta criar um atalho do prompt de comando cmd na área de trabalho. Em seguida, obtenha as propriedades do atalho do prompt de comando que você criou. Posteriormente, na guia "Atalho", preencha o campo "Destino" da seguinte maneira:

[pathToQuiet.exe] [pathToThe(.exe)/(.bat)file]

Se você clicar duas vezes no atalho, seu processo será iniciado e você poderá verificar isso através da sua lista de processos, no gerenciador de tarefas.

Observe que não deve haver nenhum espaço em branco no caminho para Quiet.exe e seu arquivo .exe ou .bat.

Mostafa
fonte
Quietparece ser executado no Windows NT até XP. Não diz nada sobre o Windows 10. Você acha que pode ser seguro usá-lo no Windows 10?
Henrik
@Henrik, o que você quer dizer com 'seguro'? Não vai quebrar. Não há mal nenhum em tentar!
barlop
@ Henrik Eu não farei nenhum mal, tente.
Mostafa
2
cmd /c "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe" %*

• o [caminho] \ nome do seu executável.
• todos os outros argumentos necessários ao seu script (% *) - Apenas para executar o exe em segundo plano.

user2361573
fonte
Isso não funciona.
Emite
Funciona sem a %*peça.
Jin Kwon
1

Se você deseja executar um comando e sair do prompt imediatamente, pode fazer isso ...

cmd / c "C: // Arquivos de programas / Adobe / Adobe Photoshop CS4 / Photoshop.exe" && exit

http://www.thewindowsclub.com/command-prompt-tricks-windows (consulte executar várias seções de comandos)

user472096
fonte
0

Por que não usar isso?

cmd /c start "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe exit"
Morcegos92
fonte
1
Você pode explicar essa resposta com mais detalhes?
precisa saber é o seguinte
Depois de tentar tudo o resto, apenas isso ajudou. Obrigado. #include <windows.h> int main() { system("cmd /c start C:/WINDOWS/system32/notepad.exe"); }
James Koss
-2

Finalmente descobri uma maneira que pelo menos no Windows 10 parece ocultar / fechar as janelas do cmd em um atalho para o qual estou tentando encontrar uma solução. Aqui está o que eu uso para abrir Usuários e Computadores do Active Directory via runas com outro logon de domínio.

runas.exe / savecred / usuário: domínio \ nome de usuário "cmd / c start mmc C: \ Windows \ System32 \ dsa.msc"

talvez "cmd / c start" seja uma solução fácil ...

Alyx Jones
fonte
Por que você menciona o Windows 10. O usuário estava usando o Windows XP. Você pelo menos verificou que isso funciona no Windows XP?
Ramhound