2012-03-05 4 views
6

Little Willis here. .jar 파일을 두 번 클릭 할 때 사용되는 기존 레지스트리 키를 편집하기 위해 배치 스크립트를 사용하려고합니다. 문제는 내가 입력하려고하는 데이터에는 따옴표가 포함되어 있지만 문자열로 간주하려면 따옴표가 필요하다는 것입니다.배치 스크립트를 사용하여 데이터에 필요한 따옴표가있는 Windows에 레지스트리 키 추가

예 :

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* /f 

내가 배치 스크립트에 cmd를 창에 출력합니다 것을 실행하면 "오류 : 너무 많은 명령 줄 매개 변수"

그래서이 간단하게 할 수 있습니다. "C : \ Program Files \ Java \ jre7 \ bin \ javaw.exe"- jar "% 1"% *와 인용 부호와 % 1 및 % *를 포함한 데이터로 레지스트리 키를 추가하고 싶습니다 실제 문이나 문자열로 변환되지 않습니다.

편집 :

일반적으로이 명령 줄 문자열을 사용하여 추가 된 레지스트리 :

ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* 

는 명령 줄에서 잘 작동하지만 그냥은이를 사용할 때 아래의 코드로 배치 스크립트 "% 1"및 % *이 (가) 나타나지 않습니다.

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "\"C:\Program Files\Java\jre7\bin\javaw.exe\" -jar \"%1\" %*" /f 

답변

13

사용 백 슬래시가 내부 따옴표, 즉 탈출 \"%%1\" %%*"

+0

당신에 대한 내 질문에 절반 대답했다. 당신이 내게 준 출력물은 "C : \ Program Files \ Java \ jre7 \ bin \ javaw.exe"-jar "" "/ f 대신"C : \ Program Files \ Java \ jre7 \ bin \ javaw.exe "-jar"% 1 "% * – Trey

+0

마지막 인용 부호를 추가하기 위해 편집했습니다. – Marc

+0

좋습니다./f 앞에 인용문을 넣으므로 지금 기존 레지스트리 키를 덮어 쓰겠는지 묻지 않습니다. "C : \ Program Files \ Java \ jre7 \ bin \ javaw.exe"-jar ""% 1 "이 (가)" "로 바뀌고 % *이 (가) 나타나지 않는 경우 – Trey

7

퍼센트 리터럴이 배치 파일에 두 배로해야합니다 :

+0

감사합니다. 지금 100 % 작동합니다. – Trey

+0

좋은 전화 인 dbenha 엠. 명령 줄 대 배치 파일에서 실행하면 백분율 문제가 설명됩니다. – Marc

1

dbenham의 대답에 추가로를, 당신은 사용해야합니다 위치 경로에 대한 백 슬래시 및 따옴표 !!

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "\"C:\Program Files\Java\jre7\bin\javaw.exe\" -jar \"%%1\"" /f 

감사 dbenham :
그래서이 전형적인 퍼센트 기호 & 추가 문제에 대한 최종 대답은

을 (난 당신이 "\"C:\Program Files..... 대신 "C:\Program Files..... 사용해야 뜻)!

1

또 다른 대안은 작은 따옴표를 사용하는 것입니다, 일부 응용 프로그램은 예를 들어, 제대로 읽을 수 있습니다

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "'C:\Program Files\Java\jre7\bin\javaw.exe\' -jar '%1' %*" /f 
관련 문제