No momento, meu arquivo em lotes fica assim:
myprogram.exe param1
O programa inicia, mas a janela do DOS permanece aberta. Como posso fechá-lo?
windows
batch-file
Senhor Dev
fonte
fonte
Respostas:
Você pode usar a palavra-chave exit. Aqui está um exemplo de um dos meus arquivos em lotes:
fonte
exit
um arquivo em lotes.start "VPN" "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"
Use o comando start para impedir que o arquivo em lotes aguarde o programa. Lembre-se de colocar aspas duplas vazias na frente do programa que você deseja executar após "Iniciar". Por exemplo, se você deseja executar o Visual Studio 2012 a partir de um comando em lote:
observe as aspas duplas após o início.
fonte
start <window name> <program name>
Veja o comando START, você pode fazer isso:
Por exemplo, este arquivo em lotes aguardará até o bloco de notas sair:
No entanto, isso não vai:
fonte
Da minha própria pergunta :
funciona se você iniciar o programa a partir de uma sessão do DOS existente.
Caso contrário, chame um script vb
O método Windows Script Host Run () leva:
Aqui está o invis.vbs:
fonte
Esta é a única coisa que funcionou para mim quando tentei executar uma classe java a partir de um arquivo em lotes:
start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm
Você pode personalizar o
start
comando como desejar para o seu projeto, seguindo a sintaxe apropriada:fonte
Você deveria tentar isso. Inicia o programa sem janela. Na verdade, pisca por um segundo, mas desaparece rapidamente.
fonte
"title"
opção é importante. Se o caminho do programa incluir espaços, ele deverá ser delimitado por aspas, portanto, será necessário adicionar"title"
para evitar falhas.Como resolver o "problema de espaço" e dependências locais:
fonte
Já existem muitas respostas para esta pergunta, mas estou postando isso para esclarecer algo importante, embora isso nem sempre seja o caso:
Pode causar problemas em algumas versões do Windows, pois
Start
na verdade espera que o primeiro conjunto de aspas seja um título do Windows. Portanto, é recomendável primeiro citar duas vezes um comentário ou um comentário em branco:ou
fonte
Minha solução para fazer isso na GUI:
Crie um atalho para o programa que você deseja executar;
Edite as propriedades do atalho;
Mude o
TARGET
campo para%COMSPEC% /C "START "" "PROGRAMNAME""
;Mude o
RUN
campo para minimizado.Pronto! Veja como você gosta...
PS: Os parâmetros do programa podem ser inseridos entre as duas aspas finais; a
PROGRAMNAME
cadeia pode ser um nome de arquivo, um caminho relativo ou um caminho absoluto - se você inserir um caminho absoluto e apagar a letra e o ponto-e-vírgula da unidade, isso funcionará em um pendrive, independentemente da letra que o computador host atribuir a ela. . (também, se você colocar o atalho na mesma pasta e preceder o nome do arquivo do programaPROGRAMNAME
com a%CD%
variável, os caminhos sempre corresponderão; o mesmo truque pode ser usado noSTART IN
campo).fonte
Se esse arquivo em lotes for algo que você deseja executar como agendado ou sempre; você pode usar a ferramenta de agendamento do Windows e ela não se abre em uma janela quando inicia o arquivo em lotes.
Para abrir
Task Scheduler
:'cmd'
taskschd.msc
-> enterNo lado direito, clique
Create Basic Task
e siga os menus.Espero que isto ajude.
fonte
Aqui está a minha solução preferida. É retirado de uma resposta a uma pergunta semelhante.
Use um script VBS para chamar o arquivo em lotes:
Copie as linhas acima para um editor e salve o arquivo com extensão .VBS.
fonte