2013-08-13 2 views
2

내 C# 응용 프로그램 요구 사항은 명령 줄 (J : \ MyFolder>를 현재 디렉터리로 사용)에서 dir 명령을 실행하고 해당 C# 응용 프로그램에서 해당 명령의 출력을받는 것입니다.DOS 명령을 실행하고 결과를 검색하는 방법

명령 줄 예제를 실행하는 곳에서 "/ c dir"과 같은 MSDN을 시도했지만 결과도 검색하고 싶습니다.

누군가 저를 도와 줄 수 있습니까? 미리 감사드립니다.

+4

다음을 참조하십시오. http://stackoverflow.com/questions/206323/how-to-execute-command-line-in-c-get-std-out-results – Jubal

+12

그렇게하지 마십시오. 'DirectoryInfo'를 사용하십시오. – SLaks

+0

DirectoryInfo를 사용하지 않고 다른 명령의 호스트를 실행하려고합니다. 그러므로 유용하지 않을 수도 있습니다. – user2680162

답변

1

http://www.dotnetperls.com/process-starthttp://www.dotnetperls.com/redirectstandardoutput

Y 오우 등 다른 예전 친구와 .bats를 호출하고 C# 프로그램에 다시 outout 및 오류를 리디렉션 할 ProcessStartInfo를 클래스를 사용할 수 있습니다. 그러나 이것은 불쾌한 일이며 yoir 예제 이외에 어떤 논리를 호출하는지에 따라 직접 코드에서 더 잘 달성 될 수 있습니다. powershell 및 wmi와 같은 파일 및 기본 파일 및 디렉토리 처리

+0

답변 해 주셔서 감사합니다. 그러나 두 예제 모두 명령 줄 실행이 아닌 .exe 파일 실행을 사용합니다. 그러한 예가 있다면 알려주십시오. – user2680162

+0

.start()에서 할 수있는 작업 .start ("cmd.exe/C dir") 여기서 dir은 명령 창에서 실행할 수있는 명령입니다. Google은 cmd.exe에 어떤 플래그가 있는지 알려줍니다. 얼마나 복잡한 지에 따라 이것이 강력하게 권장되는 코드로 수행되어야하는지 결정할 수 있습니다. 응답을 받으면 문자열 조작으로 형식을 지정해야합니다. 왝. – Kyle

0

기본 아이디어는 "command.com"을 실행 파일로 사용하여 프로세스를 시작하고 명령 줄을 매개 변수로 전달하고 stdout을 다시 사용자 정의로 리디렉션하는 것입니다. 프로그램.

방금 ​​두 개의 링크를 검토했습니다. http://www.dotnetperls.com/process-starthttp://www.dotnetperls.com/redirectstandardoutput 다음은이 작업에 대한 합리적인 설명입니다.

정말 그다지 어렵지 않습니다. 대부분 시간이 많이 걸리는 데 모든 세부 사항이 정확합니다!

프로그래밍 전에이 문제를 테스트하려면 command.com을 호출하고 명령을 실행하는 데 사용할 수 있도록하십시오. command.com 사본을 C:\WINDOWS\system32에 있습니다.

호프가 도움이 되었으면 더 궁금한 점이 있는지 물어보십시오.

관련 문제