Wie führe ich cmd-Befehle über eine Batchdatei aus?


89

Ich möchte eine Batch-Datei schreiben, die die folgenden Schritte in der angegebenen Reihenfolge ausführt:

  1. Öffnen Sie cmd
  2. Führen Sie den Befehl cmd aus cd c:\Program files\IIS Express
  3. Führen Sie den Befehl cmd aus iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
  4. Öffnen Sie Internet Explorer 8 mit URL =http://localhost:8088/default.aspx

Hinweis: Das cmd-Fenster sollte nach Ausführung der Befehle nicht geschlossen werden.

Ich habe versucht , cmd.exe / k "cd \ & cd ProgramFiles \ IIS Express" zu starten , aber es löst meinen Zweck nicht.


6
Was ist das Problem, mit dem Sie konfrontiert sind?
argentum47

Antworten:


106

Erstellen Sie also eine tatsächliche Batchdatei: Öffnen Sie den Editor, geben Sie die Befehle ein, die Sie ausführen möchten, und speichern Sie sie als .batDatei. Doppelklicken Sie dann auf die .bat-Datei, um sie auszuführen.

Versuchen Sie zunächst so etwas:

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

1
danke @Blorgbeard. es funktioniert außer der 4. Zeile. Es öffnet sich nicht gegebene URL.
Patel

öffnet sich der Browser überhaupt?
Blorgbeard ist

Oh, ich glaube ich weiß was passiert - siehe meine Bearbeitung, ich habe "start" vor der iisexpressZeile hinzugefügt .
Blorgbeard ist

@Blorgbeard, ich versuche deinen Ansatz mit "C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --serviceund es funktioniert nicht. Wenn ich diese Zeile CMDeinführe, ist alles in Ordnung. In beiden Fällen führe ich es als Admin aus. Sag mir bitte, was mache ich falsch?
Mike B.

4
@ MikeB. startNimmt das erste zitierte Argument als Fenstertitel. Versuchen Siestart "" "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

Ich denke, die richtige Syntax lautet:

cmd /k "cd c:\<folder name>"

4
Sehr schöne Option '/ k'. Auf diese Weise wird cmd auch nach Drücken von STRG + C nicht beendet. Vielen Dank :-)
Pushpendra

16

Dies behebt einige Probleme mit Blorgbeards Antwort (ist aber nicht getestet):

@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

8

Die cmd / c-Befehlssyntax funktioniert gut. Wenn Sie eine ausführbare Datei einfügen möchten, die ein Leerzeichen im Pfad enthält, benötigen Sie zwei Anführungszeichen.

cmd /c ""path to executable""

und wenn Ihre ausführbare Datei eine Dateieingabe mit einem Leerzeichen im Pfad einer anderen Gruppe benötigt

cmd /c ""path to executable" -f "path to file"" 

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

3
"Wie führe ich cmd-Befehle über eine Batchdatei aus?" Heh, technisch korrekt.
Vivek Chavda

2
Technisch korrekt ... ja ... aber auch genau das, was Sie brauchen, wenn Sie an einem Schulcomputer sitzen und die Eingabeaufforderung deaktiviert ist, Batch-Dateien jedoch nicht.
RetroCraft

Ich habe danach gesucht, also bin ich froh, dass du das gepostet hast, obwohl es nicht das ist, was das OP wollte :)
dandeto

1

cmd / k cd c: \ ist die richtige Antwort


cmd / k "cd <Pfad, in dem das cmd ausgeführt werden muss (z. B. c: \ users \ desktop \ myFolder)> & <Ihr Befehl (z. B. pm2 start)>"
Techdive

0
start cmd /k "your cmd command1"
start cmd /k "your cmd command2"

Es funktioniert unter Windows Server 2012, während ich diesen Befehl in einer Batchdatei verwende.


-7

Ich weiß, DOS und cmd Eingabeaufforderung mag keine Leerzeichen in Ordnernamen. Ihr Code beginnt mit

cd c: \ Programme \ IIS Express

und es wird versucht, anstelle von C: \ "Programme" zu c: \ Program zu wechseln.

Ändern Sie den Ordnernamen und den Namen * .exe. Hoffe das hilft


Ordnernamen ändern? Sie machen wohl Witze.
Werner Henze

1
Richtig für jeden Befehl, der Parameter mit Leerzeichen verwendet - außer cd . Es ist der einzige mir bekannte Befehl, der Parameter mit Leerzeichen ohne Anführungszeichen akzeptiert.
Stephan

Wenn Sie "Programmdateien" ändern .... xD. Ich stimme Werner zu.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.