2014-06-16 3 views
3

두 개의 배치 파일이 있습니다. 첫 번째는 C# 코드를 통해 개시된다 :C에서 일괄 파일 내 배치 파일 실행

제 배트 첫번째 안에 시작
System.Diagnostics.Process.Start(System.Environment.CurrentDirectory + "\\Files\\myBat.bat", parameters + " > output.txt"); 

:

%MY_PATH%\secondBat.bat 

우선 한 가정으로 실행되지만 두 번째 실행 (제 배트의 내부)는 무시. 이 지점까지는 모두 작동합니다.

cmd.exe를 통해 수동으로 시작한 경우 작동 함 C#을 통해 시작된 경우에만 작동하지 않습니다. 도움을

감사

편집 :

C:\TheProg\XXXX\bin\Debug>C:\TheProg\XXXX\bin\Debug\secondBat.bat 

그냥 나던 cmd.exe를을 사용하여 배치 파일을 시작

+0

"cmd/C"를 사용하여 실행하면 같은 효과가 있습니까? –

+0

배치 파일을 실행하는 방법에 대한 예제를 확인하십시오. - 그 이상의 조언은 더 이상 제공 할 수는 없지만 좀 더 자세한 정보가 나와 "잘 작동"할 수 있습니다! http://stackoverflow.com/a/5519517/1370442 – bUKaneer

+1

불행히도, 이것은 제가 찾고 있지 않은 표준 시나리오입니다. 내 코드와 똑같은 효과가 있습니다. @Artem Razin : 예 –

답변

0

' 문제를 재현하려고 시도했습니다. 내가 그것을 실행 후 output.txt 파일 내 Debug 폴더에 생성 (하지에

System.Diagnostics.Process.Start("C:\\simplebats\\bat1.bat", " > output.txt"); 

: 난 비주얼 스튜디오에서 당신이 한 방법을 BAT1을 실행

bat1.bat: 

@echo off 
echo "bat1 started" 
C:\simplebats\bat2.bat 

bat2.bat: 

echo "bat2 started" 

C:\simplebats에 .bat 파일 테스트를 생성 simplebats)과이 예상 한 두 줄 :

"bat1 started" 
"bat2 started" 

당신에게 절대적으로 확신하는 두 번째 .ba 귀하의 상황에서 파일이 해고되지 않았습니까? 출력 파일이 Debug 폴더에 만들어지기 때문에 해고 된 것을 볼 수 없습니까? 그것이 내 마음에 오는 유일한 것입니다 ..

+2

뭔가가 달랐지 만, 첫 문장에서 "클릭"을 받았습니다. 실제로는 간단한 경로 찾기 문제였습니다. 문서의 표준 폴더의 이름은 SPACES inbetween (classic)로 "Visual Studio 2010"으로 지정됩니다. 그래서 폴더를 C : \ Test로 옮기는 것이 해결책이었습니다. 나는 지금 조금 당황 스럽다 ... 웬일인지 나는 아직 답변을 게시 할 수 없다 ... –

0

시도를 실행 등의 경로를 제공한다 : 이것은 출력입니다 배치 파일의 인수를 인수로 사용하여 System.Diagnostics.Process.Start

System.Diagnostics.Process.Start("cmd.exe" , System.Environment.CurrentDirectory + "\\Files\\myBat.bat" + parameters + " > output.txt"); 
+1

안녕하세요, 이미 시도했습니다. 그것은 cmd.exe에 대한 인수를 무시하는 것 같습니다. 단지 cmd를 열고 cmd는 아무 것도하지 않습니다. –

+0

명령 프롬프트가 닫히지 않게하는'/ k' 매개 변수를 추가하십시오. 거기에 이제는 볼 수있는 오류 메시지가 포함될 수 있습니다. – AcidJunkie

+1

AcidJunkie, 내가 말했듯이, 창문이 이미 이렇게 열리게되어 있기 때문에 이것은 불필요합니다. 오류 메시지가 없습니다. 단지 입력을 기다리는 cmd-prompt입니다. –