Estou tentando abrir uma nova janela de comando em um arquivo BAT:
start %windir%\system32\cmd.exe
Depois de aberto, eu gostaria de executar um comando BAT na nova janela:
echo "test in new window"
Como posso fazer isso?
fonte
Estou tentando abrir uma nova janela de comando em um arquivo BAT:
start %windir%\system32\cmd.exe
Depois de aberto, eu gostaria de executar um comando BAT na nova janela:
echo "test in new window"
Como posso fazer isso?
Você já pode encontrar sua resposta, porque foi há algum tempo que você perguntou. Mas tentei fazer algo semelhante ao codificar ror. Eu queria executar o "servidor rails" em uma nova janela do cmd, para não precisar abrir um novo cmd e encontrar meu caminho novamente.
O que eu descobri foi usar o switch K assim:
start cmd /k echo Hello, World!
inicie antes de "cmd" abrir o aplicativo em uma nova janela e "/ K" executar "echo Hello, World!" após o novo cmd terminar.
Você também pode usar a opção / C para algo semelhante.
start cmd /C pause
Isso executará "pausa", mas fechará a janela quando o comando for concluído. Nesse caso, depois que você pressionou um botão. Achei isso útil para "servidor de rails"; quando desliguei meu servidor de desenvolvimento, não preciso fechar a janela depois.
cmd
. Você pode apenas digitarstart rails s
.Use o seguinte no seu arquivo em lotes:
ou
Consulte a documentação do cmd.exe usando
cmd /?
para obter mais detalhes.A formatação adequada da cadeia de comando fica um pouco mais complicada com espaços nos argumentos. Veja os exemplos abaixo. Observe o uso de aspas duplas aninhadas em alguns exemplos.
Exemplos:
Execute um programa e passe um parâmetro de nome de arquivo:
CMD /c write.exe c:\docs\sample.txt
Execute um programa e passe um nome de arquivo longo:
CMD /c write.exe "c:\sample documents\sample.txt"
Espaços no caminho do programa:
CMD /c ""c:\Program Files\Microsoft Office\Office\Winword.exe""
Espaços no caminho do programa + parâmetros:
CMD /c ""c:\Program Files\demo.cmd"" Parameter1 Param2
CMD /k ""c:\batch files\demo.cmd" "Parameter 1 with space" "Parameter2 with space""
Inicie demo1 e demo2:
CMD /c ""c:\Program Files\demo1.cmd" & "c:\Program Files\demo2.cmd""
Fonte: http://ss64.com/nt/cmd.html
fonte
Isto não é muito fácil.
A melhor abordagem é fazer com que a parte do seu script que você deseja executar em uma "nova janela" esteja em um arquivo .bat separado. Isso pode ser impraticável se, por exemplo, você precisar de muito estado do restante do seu script (variáveis, etc). Uma opção é passar todos os valores necessários (por exemplo, dir para operar) para o arquivo em lotes:
Se você tiver uma grande quantidade de estado a transmitir, considere gerar um arquivo em lote no tempo de execução:
Obviamente, este é um exemplo trivial.
fonte
As respostas acima me ajudaram. Mas ainda era necessário descobrir. Aqui está um exemplo de script que eu uso para iniciar 3 processos de desenvolvimento web. Isso resulta em três janelas abertas, pois elas precisam funcionar continuamente.
O Mongo é adicionado globalmente ao meu caminho, então não preciso fazer o cd como nos outros dois programas. É claro que o caminho para seus arquivos variará, mas espero que isso ajude.
fonte
Obrigado a todos aqui no Stack Overflow; esta solução resolve a questão acima, mas é estendida para executar automaticamente estas tarefas:
Acho que meu projeto se chama "antiquorum".
Crie um arquivo "init.bat" no diretório % USERPROFILE% (abra uma janela do cmd e dê uma olhada no caminho à esquerda do cursor para saber o que é% USERPROFILE%)
Em uma nova janela da linha de comandos, digite: C:> init antiquorum
O código abre mais duas janelas cmd e um navegador. TIMEOUT evita erros no navegador.
A seção : start faz o trabalho. Você pode executar tarefas 1,2 ou 4 separadamente digitando params como: servidor , trabalhador ou nenhum para deixar um cmd aberto na raiz do projeto "antiquorum" .
Aproveitar.
fonte
Se eu entendi que você fez isso corretamente, seu arquivo bat abrirá o prompt de comando e imprimirá sua mensagem na tela.
espero que isto ajude.
fonte
para executar um arquivo python em uma nova janela do cmd com espaços no nome do arquivo:
fonte
Adicionar entre dois comandos executa os dois comandos .
/k
in order
Exemplo:
este comando abrirá primeiro e
command prompt
depois execute oecho "hello"
comandofonte