2014-02-06 4 views
3

제 2 인수로 path을 전달할 때 아래 오류가 발생합니다. 문제는 공간과 같습니다.배치 파일 오류 : "파일이 예기치 않게 발생했습니다."

Files was unexpected at this time

나는 다음과 같은 매개 변수

으로 배치 파일을 실행하고

services.cmd 2 "C:\Program Files (x86)\folder\Folder\folder\Bin" corp\acct password

CODE : 당신은 인용 된 문자열 내에서 따옴표를 벗어날 수 없다

@echo off 

if "%1" == "" goto PARAMS 
if "%2" == "" goto PARAMS 
if "%3" == "" goto PARAMS 
if "%4" == "" goto PARAMS 


sc create "<service name>"%1 binpath= "\%2\xxx.exe\" \"xxx.exe.config\"" 
rem sc config "<service name>"%1 displayname= "<display name>"%1 obj= %3 password= %4 start= auto description= "Runs the service." 


goto END 

:PARAMS 

echo Usage CreateServices.cmd binfoldername binfolderpath username password 

:END 
+0

배치 파일의 코드와 전달하는 경로의 값을 제공해주십시오. –

답변

4

. %~2을 사용하면 매개 변수에서 원하지 않는 따옴표를 제거 할 수 있습니다.

는 다음과 같은 시도 :

sc create "<service name>%~1" binpath= "%~2\xxx.exe" "xxx.exe.config" 
+0

나는 ~ 2 즉 SC는 xxx.exe.config \ ""\ "\ ~ % 2" ""% 1 binpath =을 만들 %로 2 %를 변경 여전히 오류가 발생하는 것은 : 파일에 예상치 못한 이번에는 내가 service.cmd 2를 통과했을 때 "C : \ Program \ folder \ Folder \ folder \ Bin"이 작동합니다. 배치 파일이 인수로 사용하지 않는 것 같습니다. – prashanthkr08

+0

@ user1838411 - 내가 대답 한대로 줄을 써라. 또한 foxidrive의 답변에 표시된 변경 사항을 구현하십시오. – dbenham

3

뿐만 아니라 데이브의 의견을, 당신은이 라인

if "%~1" == "" goto PARAMS 
if "%~2" == "" goto PARAMS 
if "%~3" == "" goto PARAMS 
if "%~4" == "" goto PARAMS 

그러나 모든 네 개의 매개 변수 (확인하기 위해 필요한 모든 4가 필요한 경우에 tildas 필요)는 다음과 같습니다.

if "%~4" == "" goto PARAMS 
+0

감사합니다. – prashanthkr08

관련 문제