2011-10-17 4 views
2

프로세스와 함께 사용되는 배치 파일을 만들었습니다. 현재 로컬 컴퓨터의 디렉토리를 가리키는 응용 프로그램 만 있습니다..exe에 박쥐 파일을 포함시키고 Process 클래스와 함께 사용할 수 있습니까?

내 exe를이 배치와 함께 번들하는 대신 exe에 포함되도록 자원으로 포함하고 싶습니다. 배치 파일로 가능합니까?

ProcessStartInfo startInfo = new ProcessStartInfo() 

startInfo.FileName = "c:\test\batchFile.bat"; 

// set up and execute batch file with various arguments 

배치 파일을 내 솔루션에 추가하고 프로젝트 파일에 "리소스"로 추가했습니다. 이것이 내가가는 길인지 또는 내 프로젝트에서이 방법에 액세스하는 방법인지는 잘 모르겠습니다.

답변

2

전에 - 필요하다면 당신은 ... 아무것도 막에 대한 답을 포함 할 수 있습니다 예 :-)

임베디드 배치 파일을 사용하는 방법은 가장 쉬운 옵션은 리소스 (http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager.aspxhttp://msdn.microsoft.com/en-us/library/system.reflection.assembly.getmanifestresourcestream.aspx 참조)에서 읽어와 실제 파일로 저장하는 것입니다 ile - 그런 다음 사용하십시오.

.NET EXE/DLL을 포함 시키려면 실제 파일로 저장하지 않고 사용할 수 있습니다 ... 실제 파일로 저장해야 할 것으로 의심되는 배치 파일을 사용합니다.

1

물론 :

당신이 그것을 실행해야하지만,와 command.com 배치 파일을 삽입에 관해서는

System.Diagnostics.Process.Start("cmd", "/c c:\test\batchFile.bat"); 
1

방법이 방법에 대한 : 프로그램에서

  • 상점 배치 파일
  • 임시 파일
  • 실행이 임시 배치에 내용을 저장 (자원 또는 문자열 상수 또는 ... 등) 파일
1

아마도 이렇게하는 가장 강력한 방법은 .bat를 임시 파일에 쓰고 그 임시 파일을 실행하는 것입니다.

cmd.exe는 내 경험에 비추어 볼 때 다소 난감하며 다른 상황에서 다른 방식으로 작동 할 수 있습니다. 파일 시스템에서 실행하는 .bat 파일처럼 작동하게하려면 파일 시스템에서 .bat 파일을 실행해야합니다.

cmd.exe 인스턴스에 명령을 파이핑해도되지만 (필자는 권장하지 않습니다) 말하지만 다른 동작이 발생할 수 있습니다.

관련 문제