2016-08-19 4 views
2
START "Test Server" "%~dp0\server.exe" LAN %M%.aao log=server.log ini=server.ini 

"LAN"는 SERVER.EXE에 의해 실행되고 있지 후에 내가 서버에서 볼 수있는 모든 로그 파일을 매개 변수로 인해 공백 무시 "," "% ~ DP0 \ SERVER.EXE을"시작을 사용하여 서버 시작 그것이 LAN을 열려고 시도하고 있지만 "LAN"이 무시 된 후에 모든 것을 의미하는 % m % .aao를 열려고 시도해야합니다.

어떻게 해결할 수 있습니까? 내가 WOTGreal에서 배치 파일을 실행하려고 해요로

START "Test Server" server.exe LAN %M%.aao log=server.log ini=server.ini 

작동하지 않습니다 사용

. 나는 이유가 확실치 않지만 다른 두 파일/프로그램을 위해 고정 된 방법은 % ~ dp0을 사용하는 것이지만 서버는 공백을 무시하지 말 것을 요구합니다.

+0

환경 변수에 의해 문자열 보류'M' 공백이나 이러한 문자'중 하나를 포함하는 경우 '&() [] {}^=;!'+,'~''당신'사용해야합니다 " % M % .aao "'. – Mofi

+0

'% ~ dp0server.exe "를'% ~ dp0server.exe '로'% ~ dp0server.exe'로 변경하십시오. 왜냐하면 '% ~ dp0'로 참조 된 배치 파일의 드라이브와 경로는 항상 백 슬래시로 끝나서 하나를 추가하기 때문입니다 'server.exe'의 경로에 두 개의 백 슬래시를 연속적으로 실행하면 백 슬래시가 더 많이 발생합니다. Windows 커널 함수는 경로에서이 오류를 수정하지만 잘못된 실행 파일의 경로를 지정하는 것은 좋지 않습니다. – Mofi

답변

0

나는 그래서 배치 파일을 다른 폴더에서 실행됩니다

WOTGreal

에서 배치 파일을 실행하기 위해 노력하고있어. 즉, server.exe는 다른 폴더에서 실행됩니다. %M%.aao log=server.log ini=server.ini과 같은 로컬 파일 이름은 잘못된 디렉토리에서 읽혀집니다.

다른 모든 경로에서 %~dp0을 사용하여 문제를 해결할 수도 있습니다. 그러나 배치 파일의 시작 부분에서 현재 디렉토리를 변경하는 것이 더 쉽습니다. 이를 수행하려면 다음 행을 배치 파일의 시작 부분에 추가하십시오.

cd /d "%~dp0" 
+1

감사합니다. 지금 큰 작품입니다! – LEEFFM