2008-11-19 3 views
63

Ich bin dabei, CruiseControl.NET einzurichten. Das Problem, das ich habe, ist, dass ich CC als eine Konsolenanwendung ausführe, und wenn mein Build erfolgreich abgeschlossen ist und ausgeführt wird (mit exec), startet es es innerhalb der CruiseControl DOS-Eingabeaufforderung. Ich benutze nur einfache Batch-Dateien, um meine App zu starten, aber sie wird an der gleichen Eingabeaufforderung ausgeführt wie CC, was dazu führt, dass CC denkt, dass der Build fortgesetzt wird, solange meine App läuft.Erstellen Sie ein neues cmd.exe-Fenster innerhalb einer anderen cmd.exe Eingabeaufforderung

Gibt es Befehlszeilenparameter zu cmd.exe, die ein anderes separates Eingabeaufforderungsfenster erzeugen?

Antwort

129

Ich denke, das funktioniert:

start cmd.exe 
+2

stellen Sie sicher, dass Sie alle verschiedenen Optionen für Start "Start /?" /warten und/ich kann nützlich sein. –

+30

fwiw, du musst nicht einmal 'cmd.exe' nach dem Start setzen. nur das Wort "Start" wird es tun. – JustJeff

+6

@JustJeff: Wahre Geschichte. Wenn dies Code Golf wäre, hätten Sie gewonnen!':)' –

21
start cmd.exe 

ein separates Fenster

start file.cmd 

die Batch-Datei öffnet öffnet und führt sie in eine andere Eingabeaufforderung

-3

einfach schreiben in Ihrem Schläger Datei

@cmd 

oder

@cmd /k "command1&command2" 
+0

Danke für das '&' um mehrere Befehle in der neuen Eingabeaufforderung auszuführen. Ich möchte 'exit' hinzufügen, damit die Eingabeaufforderung geschlossen wird, wenn der Befehl ausgeführt wurde. – Sylhare

0

Ich versuchte auch Batch-Datei ausgeführt werden, den Dämon-Prozess/Server am Ende des CCNET Task ausgeführt; Die einzige Möglichkeit, einen unabhängigen asynchronen Prozess zu machen CruiseControl- laichen ohne das Ende des Prozesses wartet:

  1. eine Batchdatei erstellen, den Daemon-Prozess (Server-Anwendung)
  2. Verwendung Task-Scheduler laufen die laufen Batch-Datei als CCNET Aufgabe (mit schtasks.exe)

    schtasks.exe /create /F /SC once /ST 08:50 /TN TaskName /TR "c:/path/to/batchFileName.bat" 
    
    • 08:50 ist das HH: MM-Zeitformat

müssen Sie möglicherweise den Prozess zu Beginn der Ccnet

PS töten: mit der ausgewählten Antwort „cmd.exe starten“ funktioniert nicht; eine neue Eingabeaufforderung wird tatsächlich erzeugt, aber CCNET wird warten, bis der erzeugte CMD beendet ist.

2
START "notepad.exe" 
echo Will launch the notepad.exe application 
PAUSE 

To make any cmd file type all you have to do is save the contents as .bat I.e. 
@echo 
TITLE example.bat 
PAUSE 
taskkill/IM cmd.exe 
Make that into a "example.bat" file and save it open it and run. 
24

hier ist der Code, den Sie benötigen;)

start cmd.exe @cmd /k "Command" 
+0

das half, wenn ich ein besetztes Befehlsfenster bereits geöffnet hatte – Moak

+4

Was macht das '@ cmd'? Gibt es eine Dokumentation dafür? – michas

+1

Ich bin auch neugierig auf '@ cmd'. – RodgerTheGreat

13

einfach Start in Eingabeaufforderung.

> start 

Dies öffnet neue Fenster.

Verwandte Themen