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.