
이것은 나에게 바나나를 몰고 있지만 매우 간단한 것임에 틀림 없습니다. 값 데이터에 "큰따옴표"가 포함되어 있는 REG ADD를 사용하여 배치 스크립트에 ImagePath 값(REG_SZ)을 추가하려고 합니다. 그런데 "잘못된 구문" 오류가 계속 발생합니다. 내가 추가하려는 가치는 다음과 같습니다.
Key : HKLM\SYSTEM\CurrentControlSet\Services\MSSQL$SQLEXPRESS
Value: ImagePath REG_SZ
Data : "C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Binn\sqlservr.exe" -sSQLEXPRESS
데이터를 작은따옴표로 묶으려고 했습니다.
@SETLOCAL
@SET IPATH="C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Binn\sqlservr.exe" -sSQLEXPRESS
@REG.EXE ADD "HKLM\SYSTEM\CurrentControlSet\Services\MSSQL$SQLEXPRESS" /f /v ImagePath /t REG_SZ /d '%IPATH%'
또한 "큰따옴표", 앞머리(!), [괄호], \backslashes\ 및 ^carets^로 묶으려고 시도했지만 구문 오류가 계속 발생합니다.
내가 뭘 잘못하고 있는지 아시나요?
답변1
매개변수는 큰따옴표로 묶어야 합니다. 임의로 선택한 기타 구두점(작은따옴표, 느낌표 등)은 작동하지 않습니다.
그러나 접두어를 붙여야 합니다.안의백슬래시가 포함된 큰따옴표:
@SET ImagePath=\"C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Binn\sqlservr.exe\" -sSQLEXPRESS
@REG.EXE ADD "HKLM\SYSTEM\CurrentControlSet\Services\MSSQL$SQLEXPRESS" /f /v ImagePath /t REG_SZ /d "%ImagePath%"
SET
참고 1: Cmd에 값을 할당하려면 (에서와 같이 ) 을 사용해야 합니다 SET VAR=VALUE
.
참고 2: 변수 이름으로 사용하지 마십시오 PATH
. 프로그램 위치를 지정하기 위해 Cmd에서 이미 사용하고 있으므로 덮어쓰면 스크립트를 실행할 수 없습니다 REG.EXE
.