다른 cmd.exe 프롬프트 내에서 새 cmd.exe 창을 만듭니다.


102

CruiseControl.NET을 설정하는 중입니다. 내가 가진 문제는 CC를 콘솔 응용 프로그램으로 실행하고 있으며 빌드가 성공적으로 완료되고 실행되면 (exec 사용) CruiseControl DOS 프롬프트 내에서 실행된다는 것입니다. 간단한 배치 파일을 사용하여 내 앱을 시작하고 있지만 CC와 동일한 프롬프트 내에서 실행하면 CC가 내 앱이 실행되는 동안 빌드가 계속된다고 생각하게됩니다.

cmd.exe별도의 프롬프트 창을 생성하는 명령 줄 매개 변수가 있습니까?


1
cmd.exe는 GUI가 아닌 CUI 셸입니다. 창을 만들지 않습니다. 콘솔 호스트 프로세스 인 conhost.exe의 인스턴스에서 만들고 관리하는 콘솔 창을 사용합니다. CUI 프로그램이 정상적으로 시작되면 기본 클라이언트 DLL (kernel32.dll 또는 kernelbase.dll)의 초기화 코드가 부모의 콘솔 (있는 경우)을 상속하거나 생성 플래그 DETACHED_PROCESS(예 : 콘솔 없음)로 시작하지 않는 한 새 콘솔을 할당합니다. . CREATE_NEW_CONSOLECMD가 start사용하는 것처럼 생성 플래그로 시작 되면 기본 DLL은 항상 부모를 상속하는 대신 새 콘솔을 할당합니다.
Eryk Sun

답변:


201

나는 이것이 작동한다고 생각한다.

start cmd.exe

5
시작 "시작 /?"에 대한 모든 다른 옵션을 확인하십시오. / wait 및 / I가 유용 할 수 있습니다.
Peter Gfader

47
fwiw, 시작 후 'cmd.exe'를 넣을 필요도 없습니다. '시작'이라는 단어 만 있으면됩니다.
JustJeff 2010

start / d <path> 새 cmd 창에 대한 경로를 설정하려는 사용자를위한 것입니다. 여기에 자세한 설명이 있습니다.
anton.mo

56

필요한 코드는 다음과 같습니다.

start cmd.exe @cmd /k "Command"

10
뭐라고입니다 @cmd거야? 그것에 대한 몇 가지 문서가 있습니까?
michas jul.

1
@일반적으로 프롬프트에 표시되는 직접 출력을 억제하지만 명령은 계속 실행됩니다.
Thielicious

나는 이것을 사용했지만 작동하지만 키보드 인터럽트 ctrl + c로 실행중인 프로그램을 종료하려고하면 실행중인 프로그램이 중지되지 않습니다. 새로 열린 명령 프롬프트 창을 닫을 때만 중지됩니다.
Sachin G.

.NET을 사용하는 여러 줄 명령에는 작동하지 않습니다 ^. ? :( 어떤 방법이 처리 할 수
user2173353

32

start명령 프롬프트에 간단히 입력 하십시오.

start

그러면 새 cmd창이 열립니다 .


22
start cmd.exe 

별도의 창을 엽니 다

start file.cmd 

배치 파일을 열고 다른 명령 프롬프트에서 실행합니다.


2

명령 프롬프트에서 다음 세 명령을 입력 할 수 있습니다.

  1. start

  2. start cmd

  3. start cmd.exe


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

cmd 파일 유형을 만들려면 내용을 .bat로 저장하기 만하면됩니다.

@echo
TITLE example.bat
PAUSE
taskkill/IM cmd.exe

"example.bat"파일로 만들고 저장 한 다음 열고 실행합니다.


1

박쥐 파일에 간단한 쓰기

@cmd

또는

@cmd /k "command1&command2"

4
&새 프롬프트에서 여러 명령을 실행 해 주셔서 감사 합니다. exit명령 실행이 완료되면 프롬프트를 닫 도록 추가 하고 싶습니다 .
Sylhare

0

또한 CCNET 작업이 끝날 때 데몬 프로세스 / 서버를 실행하는 배치 파일을 실행 해 보았습니다. CruiseControl이 프로세스의 끝을 기다리지 않고 독립적 인 비동기 프로세스를 생성하는 유일한 방법은 다음과 같습니다.

  1. 데몬 프로세스를 실행하기위한 배치 파일 생성 (서버 응용 프로그램)
  2. 작업 스케줄러를 사용하여 배치 파일을 CCNET 작업으로 실행 (schtasks.exe 사용)

    schtasks.exe /create /F /SC once /ST 08:50 /TN TaskName /TR "c:/path/to/batchFileName.bat"
    
    • 08:50은 HH : MM 시간 형식입니다.

ccnet을 시작할 때 프로세스를 종료해야 할 수도 있습니다.

추신 : "start cmd.exe"를 사용하여 선택한 답변이 작동하지 않습니다. 새 명령 프롬프트가 실제로 생성되지만 CCNET은 생성 된 cmd가 완료 될 때까지 기다립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.