Comment exécuter des commandes cmd via un fichier de commandes?

89

Je veux écrire un fichier batch qui fera les choses suivantes dans l'ordre donné:

  1. Ouvrir cmd
  2. Exécutez la commande cmd cd c:\Program files\IIS Express
  3. Exécutez la commande cmd iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
  4. Ouvrez Internet Explorer 8 avec URL =http://localhost:8088/default.aspx

Remarque: La fenêtre cmd ne doit pas être fermée après l'exécution des commandes.

J'ai essayé de démarrer cmd.exe / k "cd \ & cd ProgramFiles \ IIS Express" , mais cela ne résout pas mon objectif.

Patel
la source
6
quel est le problème auquel vous faites face?
argentum47

Réponses:

106

Alors, créez un fichier batch réel: ouvrez le bloc-notes, tapez les commandes que vous souhaitez exécuter et enregistrez-les sous forme de .batfichier. Ensuite, double-cliquez sur le fichier .bat pour l'exécuter.

Essayez quelque chose comme ça pour commencer:

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 sorti
la source
1
merci @Blorgbeard. il fonctionne sauf la 4ème ligne. il n'ouvre pas l'url donnée.
patel
le navigateur s'ouvre-t-il du tout?
Blorgbeard sort
Oh, je pense que je sais ce qui se passe - voir mon montage, j'ai ajouté "start" avant la iisexpressligne.
Blorgbeard sort
@Blorgbeard, j'essaye votre approche avec "C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --serviceet ça ne marche pas. Lorsque j'exécute cette ligne, CMDtout est OK. Dans les deux cas, je l'exécute en tant qu'administrateur. Dites-moi s'il vous plaît, ce que je fais de mal?
Mike B.
4
@MikeB. startprend le premier argument cité comme titre de fenêtre. Essayezstart "" "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

Je pense que la syntaxe correcte est:

cmd /k "cd c:\<folder name>"
argentum47
la source
4
Très belle option '/ k'. De cette façon, même après avoir appuyé sur CTRL + C cmd ne se ferme pas. Merci beaucoup :-)
Pushpendra
16

Cela résout certains problèmes avec la réponse de Blorgbeard (mais n'est pas testé):

@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
la source
8

La syntaxe "commande" cmd / c fonctionne bien. De plus, si vous souhaitez inclure un exécutable contenant un espace dans le chemin, vous aurez besoin de deux ensembles de guillemets.

cmd /c ""path to executable""

et si votre exécutable a besoin d'une entrée de fichier avec un espace dans le chemin d'un autre ensemble

cmd /c ""path to executable" -f "path to file"" 
Feety
la source
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
la source
3
"Comment exécuter des commandes cmd via un fichier batch?" Heh, techniquement correct.
Vivek Chavda
2
Techniquement correct ... oui ... mais aussi exactement ce dont vous avez besoin si vous êtes sur un ordinateur scolaire et que l'invite de commande est désactivée, mais pas les fichiers batch.
RetroCraft
Je cherchais ceci, donc je suis heureux que vous ayez posté ceci même si ce n'est pas ce que l'OP voulait :)
dandeto
1

cmd / k cd c: \ est la bonne réponse

franc
la source
cmd / k "cd <chemin où la cmd doit être exécutée (par exemple c: \ users \ desktop \ myFolder)> & <votre commande (par exemple, pm2 start)>"
Techdive
0
start cmd /k "your cmd command1"
start cmd /k "your cmd command2"

Cela fonctionne dans Windows server2012 pendant que j'utilise ces commandes dans un fichier batch.

VictorLee
la source
-7

Je sais que l'invite DOS et cmd N'AIME PAS les espaces dans les noms de dossier. Votre code commence par

cd c: \ Program files \ IIS Express

et il essaie d'aller à c: \ Program au lieu de C: \ "Program Files"

Modifiez le nom du dossier et le nom * .exe. J'espère que cela t'aides

user7380371
la source
Changer le nom du dossier? Tu te moques de moi.
Werner Henze
1
correct pour toute commande qui utilise des paramètres avec des espaces - sauf cd . C'est la seule commande que je connaisse, qui prend en fait des paramètres avec des espaces sans guillemets.
Stephan
Lorsque vous modifiez les "Fichiers programmes" .... xD. Je suis d'accord avec Werner. Voici ce qui se passe: vos applications qui codent en dur l'emplacement du fichier ne fonctionnent plus, certaines fonctions système peuvent ne pas fonctionner, votre système tombe en panne