Como executo comandos cmd por meio de um arquivo em lote?

89

Quero escrever um arquivo em lote que fará o seguinte na ordem determinada:

  1. Abra o cmd
  2. Execute o comando cmd cd c:\Program files\IIS Express
  3. Execute o comando cmd iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
  4. Abra o Internet Explorer 8 com URL =http://localhost:8088/default.aspx

Nota: A janela cmd não deve ser fechada após a execução dos comandos.

Tentei iniciar cmd.exe / k "cd \ & cd ProgramFiles \ IIS Express" , mas não está resolvendo meu propósito.

patela
fonte
6
qual é o problema que você está enfrentando?
argentum47

Respostas:

106

Portanto, faça um arquivo em lote real: abra o bloco de notas, digite os comandos que deseja executar e salve como um .batarquivo. Em seguida, clique duas vezes no arquivo .bat para executá-lo.

Para começar, tente algo assim:

c:\
cd c:\Program files\IIS Express
start iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
start http://localhost:8088/default.aspx
pause
Blorgbeard está fora
fonte
1
obrigado @Blorgbeard. está funcionando, exceto a 4ª linha. não está abrindo o url fornecido.
patel
o navegador abre?
Blorgbeard será lançado
Oh, acho que sei o que está acontecendo - veja minha edição, adicionei "start" antes da iisexpresslinha.
Blorgbeard será lançado
@Blorgbeard, estou tentando sua abordagem "C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --servicee não funciona. Quando executo esta linha em CMDtudo está OK. Em ambos os casos, executo-o como administrador. Diga-me por favor, o que eu faço de errado?
Mike B.
4
@MikeB. startrecebe o primeiro argumento entre aspas como título da janela. Tentestart "" "C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --service
Stephan
24

Acho que a sintaxe correta é:

cmd /k "cd c:\<folder name>"
argentum47
fonte
4
Muito boa opção '/ k'. Desta forma, mesmo após pressionar CTRL + C cmd não sai. Muito obrigado :-)
Pushpendra
16

Isso corrige alguns problemas com a resposta de Blorgbeard (mas não foi testado):

@echo off
cd /d "c:\Program files\IIS Express"
start "" iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
timeout 10
start http://localhost:8088/default.aspx
pause
foxidrive
fonte
8

A sintaxe de "comando" cmd / c funciona bem. Além disso, se desejar incluir um executável que contenha um espaço no caminho, você precisará de dois conjuntos de aspas.

cmd /c ""path to executable""

e se o seu executável precisa de uma entrada de arquivo com um espaço no caminho, um outro conjunto

cmd /c ""path to executable" -f "path to file"" 
Feety
fonte
6
@echo off
title Command Executer
color 1b

echo Command Executer by: YourNameHere
echo #################################
: execute
echo Please Type A Command Here:
set /p cmd=Command:
%cmd%
goto execute
Ethan
fonte
3
"Como executo comandos cmd por meio de um arquivo em lote?" Heh, tecnicamente correto.
Vivek Chavda
2
Tecnicamente correto ... sim ... mas também exatamente o que você precisa se estiver em um computador escolar e o prompt de comando estiver desabilitado, mas os arquivos em lote não.
RetroCraft
Estive procurando por isso, então estou feliz que você postou isso, embora não seja o que o OP queria :)
dandeto
1

cmd / k cd c: \ é a resposta certa

franco
fonte
cmd / k "cd <caminho onde o cmd precisa ser executado (Ex. c: \ users \ desktop \ myFolder)> & <your command (Ex. pm2 start)>"
Techdive
0
start cmd /k "your cmd command1"
start cmd /k "your cmd command2"

Ele funciona no Windows server2012 enquanto eu uso esses comandos em um arquivo em lote.

VictorLee
fonte
-7

Eu sei que DOS e prompt de cmd NÃO GOSTAM de espaços em nomes de pastas. Seu código começa com

cd c: \ Arquivos de programas \ IIS Express

e está tentando ir para c: \ Program em vez de C: \ "Arquivos de programas"

Altere o nome da pasta e o nome * .exe. Espero que isto ajude

user7380371
fonte
Mudando o nome da pasta? Você deve estar brincando.
Werner Henze
1
correto para qualquer comando que use parâmetros com espaços - exceto cd . É o único comando que conheço que realmente usa parâmetros com espaços sem aspas.
Stephan
Quando você altera "Arquivos de programa" .... xD. Eu concordo com Werner. Aqui está o que acontece: seus aplicativos que codificam o local do arquivo não funcionam mais, algumas funções do sistema podem não funcionar, seu sistema quebra