Jestem w trakcie konfigurowania CruiseControl.NET. Problem, który mam, polega na tym, że używam CC jako aplikacji konsolowej, a kiedy moja kompilacja zakończy się pomyślnie i zostanie wykonana (przy użyciu exec), uruchamia ją w wierszu poleceń CruiseControl DOS. Po prostu używam prostych plików wsadowych do uruchamiania mojej aplikacji, ale uruchamianie jej w ramach tego samego monitu co CC powoduje, że CC uważa, że kompilacja trwa tak długo, jak działa moja aplikacja.
Czy istnieją parametry wiersza poleceń, cmd.exe
które spowodują pojawienie się innego oddzielnego okna zachęty?
windows
command-line
cmd
Mark Stahler
źródło
źródło
DETACHED_PROCESS
(tj. Bez konsoli) . Jeśli został uruchomiony z flagą tworzeniaCREATE_NEW_CONSOLE
(jakstart
używa CMD ), podstawowa biblioteka DLL zawsze przydziela nową konsolę zamiast dziedziczyć nadrzędną.Odpowiedzi:
Myślę, że to działa:
źródło
Oto kod, którego potrzebujesz:
źródło
@cmd
robi? Czy jest jakaś dokumentacja?@
pomija bezpośrednie wyjście, które normalnie pojawiłoby się w zachęcie, ale polecenie nadal jest wykonywane.^
. :( Czy jest jakiś sposób, aby sobie z tym poradzić?Po prostu wpisz
start
w wierszu polecenia:Otworzy się nowe
cmd
okna.źródło
otwiera osobne okno
otwiera plik wsadowy i wykonuje go w innym wierszu polecenia
źródło
Możesz po prostu wpisać te 3 polecenia w wierszu polecenia:
start
start cmd
start cmd.exe
źródło
Aby utworzyć dowolny typ pliku cmd, wszystko, co musisz zrobić, to zapisać zawartość jako .bat, tj
Utwórz plik „example.bat”, zapisz go, a następnie otwórz i uruchom.
źródło
prosty zapis w pliku bat
lub
źródło
&
wykonanie wielu poleceń w nowym monicie. Lubię dodawać,exit
więc zamyka monit po zakończeniu działania polecenia.Próbowałem również uruchomić plik wsadowy, który uruchamia proces / serwer demona na końcu zadania CCNET; Jedynym sposobem, aby CruiseControl odradzał się jako niezależny proces asynchroniczny BEZ czekania na zakończenie procesu, jest:
użyj harmonogramu zadań, aby uruchomić plik wsadowy jako zadanie CCNET (używając schtasks.exe)
może być konieczne zabicie procesu na początku ccnet
PS: wybrana odpowiedź za pomocą "start cmd.exe" nie działa; rzeczywiście pojawia się nowy wiersz polecenia, ale CCNET będzie czekać na zakończenie uruchomionego polecenia cmd.
źródło