2012-01-12 3 views
2

내 .NET 응용 프로그램에서 셸 스크립트 (.cmd)를 시작하고 있습니다. 스크립트가 완료된 후에 콘솔 창을 열어서 오류를 확인할 수 있기를 바랍니다. cmd.exe /K:my.cmd으로 시도하지만 작동하지 않습니다 (스크립트가 실행되지 않음). 간단한 "dir"명령조차도 작동하지 않습니다. 다른 아이디어?콘솔 응용 프로그램을 시작하고 콘솔 응용 프로그램을 닫지 않도록하는 방법은 무엇입니까?

설명하기 위해이 :

C:\> 

추가 된 설명 :

System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo() 
{ 
    Arguments = "/K:dir", 
    ErrorDialog = true, 
    FileName = "cmd.exe", 
    WorkingDirectory = @"C:\" 
}); 

나에게이를 제공 내 응용 프로그램 (스크립트를 시작하는 일)가 응용 프로그램을 형성한다. 위의 코드를 실행하면 새 콘솔 창이 열립니다 (필요한 경우). 나는 새로운 콘솔 창을 열어두기를 원합니다. 또한 스크립트를 수정할 수 없습니다. 자동화 된 빌드 스크립트이고 종료해야합니다.

답변

2

이지만 cmd /K:dir를 실행하면 아무것도 할 수 운영. 콜론 대신 공백을 사용하면 나에게 효과적입니다.

즉, 그것은 또한 당신이 실행 대화 상자에서 다음 명령을 테스트 할 수 있음을 주목할 필요가 cmd /K dir


. 최근 Windows 버전에서는 Win을 누르고 을 누르면이 작업을 수행 할 수 있습니다.

System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo() 
{ 
    Arguments = "/K dir", 
    ErrorDialog = true, 
    FileName = "cmd.exe", 
    WorkingDirectory = @"C:\" 
}); 
+0

바로 그 전에 다른 프로그램의 명령 줄을 연구 한 후에 한 프로그램의 명령 줄을 사용하려고 할 때 얻을 수있는 것입니다 (필자의 경우 TortoiseSVN). :피 –

1

배치 파일 (.bat)에 명령을 배치하고 배치 파일 내의 마지막 명령을 "일시 중지"(따옴표 제외)로 만들 수 있습니다. 그런 다음 cmd를 실행하는 대신 배치 파일을 실행하십시오.

샘플 배치 파일 -

디렉토리 TEST.BAT 또한 텍스트 파일로 출력 결과는 다음 응용 프로그램 내에서 텍스트 파일을 보여줄 수

일시 정지.

DIR >results.txt 
+0

은 그럴듯하지만, 많은 이러한 스크립트가 있습니다 나는 그들 각각에 대해 별도의 .BAT 파일을 작성하지 않으 : –

+0

결과를 파일로 출력 한 다음 파일을 열고 표시 할 수 있습니다. C :> DIR> dirResults.txt –

0

나는 창을 열어 두지 않고 오류를 파일에 기록합니다. 는 .NET 콘솔 창이 열려 끝에

Console.ReadLine(); 

를 추가 유지하기 위해이 계속 Enter 키를 누릅니다 사용자가 필요합니다. 당신은 또한 당신이 프로세스 창 명령을 열 유지하려면 아무 키나

를 사용하는 Console.ReadKey()를 사용하여이 모든 문제의 경우 나도 몰라 pause

+0

OP에서 편집을보십시오. – FakeRainBrigand

1

당신의 예에서 콜론을 제거합니다. 나는 일시적인 .BAT 파일을 즉석에서 생성 할 수 있었지만 해커가 해결할 수있는 것처럼 보였다. 더 좋은 방법이 없을까요?
관련 문제