Esta pergunta já tem uma resposta aqui:
No Windows XP, posso executar um arquivo em lotes (.bat ou .cmd), por meio de um atalho, sem uma "janela preta"?
windows
command-line
batch-file
shortcuts
dugres
fonte
fonte
Respostas:
Salve o seguinte como wscript, por exemplo, hidecmd.vbs após substituir "testing.bat" pelo nome do arquivo em lote.
O segundo parâmetro de
oShell.Run
é ointWindowStyle
valor que indica a aparência da janela do programa e o valor zero é para a janela oculta.A referência está aqui http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
fonte
.bat
arquivo como administartor usando este método?Esta é apenas uma simplificação da resposta de Shaji. Você pode executar seu script em lote por meio de um script VBScript (.vbs) como este:
Isso executará seu arquivo em lotes sem nenhuma janela de comando mostrada.
fonte
.bat
arquivo como administrador usando este método?Apenas para expandir as respostas "Usar scripts do Windows" (que considero melhores porque já estão incorporadas), veja como fazê-lo usando um único script de wrapper e passando o nome do arquivo em lotes "real" como parâmetro. Parâmetros adicionais serão transmitidos para o arquivo em lotes.
Por exemplo, salve o arquivo acima como em
NoShell.vbs
algum lugar e chame:Por fim, se você estiver procurando executá-lo em algum lugar que não entenda o arquivo .vbs (como "Ferramentas Externas" no Visual Studio), convém chamar
C:\Windows\System32\wscript.exe
o arquivo vbs como seu primeiro parâmetro e o seu arquivo em lotes como o segundo.fonte
"C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
."C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat
. Não importa o que eu tente para o caminho - aspas duplas em torno de tudo,% 20 no lugar do espaço ou uma combinação desses dois, nada funciona. Recebo uma mensagem de erro informando que o arquivo não pode ser encontrado ou que nada acontece. Isso ocorre devido a erro do usuário do meu lado, uma limitação do Windows com o campo Destino para atalhos ou um problema com o script vbs no qual ele não manipula os caminhos de arquivos com espaços corretamente?Você pode alterar as propriedades do atalho para executar minimizadas.
Para executá-lo completamente invisível, você precisará de outra coisa, como scripts do Windows.
fonte
Use start com a opção '/ B'. Por exemplo:
fonte
start /b
apenas executará o programa no console alocado no momento em vez de gerar um novo. De qualquer forma, você receberá um novo, já que o lote precisa ser executado com o cmd (que, por sua vez, [surpresa], abre um console).SYSTEM
em C / C ++).cmd /c foo.cmd
. Não há absolutamente nenhuma necessidade de usarstart
nesses cenários e, eu diria quesystem
não deve ser usado a favorCreateProcess
. Ao iniciar um arquivo em lote, você já depende de uma plataforma; também pode usar as melhores ferramentas para o trabalho.cmd /c
antes. O comando cmd é o que eu precisava no meu caso, mas todas as respostas Stackexchange eu encontrei até agora, cerca de um arquivo de lote executando outro arquivo de lote, têm respostas superiores para usar início ...start /b go.bat
não alocará um novo console (ou seja, uma instância do conhost.exe - ou um encadeamento no csrss.exe antes do Windows 7). No entanto, isso fará uma bagunça, pois o script em lote é executado com uma nova instância do cmd.exe anexada ao mesmo console . Ambas as instâncias do shell competirão para ler as entradas do console, normalmente alternadas. Ele precisa/w
(por exemplostart /b /w go.bat
) para aguardar a segunda instância, que é semelhante ao usocmd /c
se estiver usandosystem
. Além disso, se você estiver ligandoCreateProcess
, executego.bat
diretamente. Não há necessidadecmd /c
.Código aberto GPL gratuito "Criar processo oculto"
http://www.commandline.co.uk/chp/
O Microsoft Security Essentials e provavelmente a maioria dos outros scanners de vírus / malware tratam o executável, chp.exe, como um vírus, porque oculta qualquer programa que você especificar exibindo uma janela ou um botão da barra de tarefas, assim como os vírus.
Não é um vírus. Ele não esconde que o processo de destino apareça no gerenciador de tarefas, por exemplo. E é claro que o código fonte está incluído para que você possa ver que é muito pequeno e não faz nada além de executar o programa que você fornecer.
Você nem precisa confiar que o chp.exe incluído foi realmente criado a partir dessa fonte. Você pode descartar o chp.exe incluído e compilar o seu a partir da fonte, e todas as ferramentas necessárias para fazer isso são gratuitas e podem ser baixadas.
Você também pode simplesmente criar um atalho para o arquivo .bat ou .cmd e clicar com o botão direito do mouse no atalho, Propriedades, guia Atalho, Executar: Minimizado. Em tarefas agendadas, use o atalho em vez do arquivo .bat / .cmd diretamente. Isso impedirá que uma janela seja exibida, mas um botão da barra de tarefas ainda aparecerá.
fonte
Você pode usar scripts de janela como o AutoIt .
Como exemplo, basta escrever isso no editor de script AutoIt. É bem simples
Se você deseja executá-lo em um loop,
Compile-o como .exe - e pronto.
Da mesma forma, na AutoHotkey :
fonte
Usar início oculto (custa US $ 20)
fonte
Solução simples, sem usar nenhum programa extra.
Boa sorte!
fonte