2017-12-15 9 views
0

다른 배치 파일에서 변수와 윈도우 배치 파일을 시작하는 방법 다음 : %SOME_PATH%\pathToConfig\some.properties내가 시도

:

set SOME_PATH="C:\some_path" 
start "some program" %SOME_PATH%\pathToScript\anotherBatch.bat %SOME_PATH%\pathToConfig\some.properties 

내 목표는 인수로 설정 파일의 경로를 소요 "anotherBatch.bat"을 시작하는 것입니다

불행히도 새로운 명령 프롬프트에서 파일 이름에 대한 구문이 잘못되었다는 오류가 발생했습니다.

위의 시작 명령에 올바른 구문은 무엇입니까?

+1

일괄 처리를 실행하는 네 가지 방법을 설명하는 [현재 디렉토리에서 한 수준 위로 배치 파일을 호출하는 방법] (https://stackoverflow.com/a/24725044/3074564)에 대한 대답을 읽는 것이 좋습니다. 배치 파일 내에서 파일. 인수 문자열에 공백이나 "&() [] {=^;; '+,'~ <|>''문자 중 하나가 포함될 경우 각 인수 문자열을 큰 따옴표로 묶어야합니다. 환경 변수'SOME_PATH'에 경로를 지정하는 첫 번째 큰 따옴표도 잘못 배치되었습니다. [공백으로 환경 변수를 설정하는 방법] (https://stackoverflow.com/a/34402887/3074564) – Mofi

답변

2

CallStart 대신 배치 파일을 사용해야합니다. anotherBatch.bat가 인용되지 않은 인수로 %1 또는 "%~1" 인용 인수로하고 %~1를 사용합니다

Set "SOME_PATH=C:\some_path" 
Call "%SOME_PATH%\pathToScript\anotherBatch.bat" "%SOME_PATH%\pathToConfig\some.properties" 

.

+0

문제는 anotherBactch.bat가 다른 cmd 창에서 배치 파일을 실행하기 위해 시작 명령을 사용하는 이유 인 호출을 차단합니다. anotherBactch.bat를 비동기 적으로 호출 할 수 있습니까? – MvKuegelgen

+0

'.bat' 확장자를 가진 파일 안에있는 일련의 텍스트 문자열이 그 앞에 오는'call' 명령을'blocking '한다고 생각하는 방식을 올바르게 설명해 주어야합니다. – Compo