나는 여기에서 새롭다. 그리고 나의 영어는 그렇게 좋지 않다. 그래서 처음에, 용서해라.대괄호가이 Windows 파일에서 작동하지 않습니까?
제 문제는이 배치가 "IF EXIST % FSIZE %"변수의 문자열을 계속 읽는 것입니다. 나는 그 변수가 존재하지 않는다면, 그 배치는() 괄호 안의 계속 읽는 것을 나머지 훔침들로 옮기는 것을 의미한다.
% FSIZE %가 있으면 일괄 처리에서 다음과 같은 2 가지 작업을 수행합니다. (1) 크기가 동일하면 goto cifiles5x. (2) 크기가 같지 않으면 7z를 사용하여 파일을 추출합니다.
% FSIZE %가 존재하지 않으면 배치는 "765952가이 순간에 예상되지 않았습니다."라고 계속 말합니다.
숫자 값 (% size % EQU 765952)을 비교할 때 괄호 나 따옴표를 사용하지 말고 ss64.com에 대한 조언을 듣고 있는데 왜 끝나지 않는지 계속 이해하지 못합니다.
또한 "& &"으로 명령을 연결하려고 했으므로 대괄호를 지울 수 있지만 결과는 같습니다.
따옴표가없는 2 개의 간격 패치가 있음을 알고 있습니다. 나는 크기 검사기가 작동하지 않기 때문에 그들은 인용되지 않습니다.
감사합니다. 편집 : 제안 사항대로 일괄 수정.
@ECHO OFF
TITLE Log checker
COLOR 0F
SET FSIZE=%ProgramFiles(x86)%\Ces\Log Files Ver\LogVbReg_r2.dll
SET InsDIR=%ProgramFiles(x86)%\Ces\Log Files Ver\
REM I didn't add "" on FSIZE and InsDIR because if i did, quote the variable will
REM result a doubled quoted patch and won't work.
CLS
ECHO ==============================================================================
ECHO = Log checker =
ECHO ==============================================================================
ECHO Checking if exist:
ECHO "%FSIZE%"
IF EXIST "%FSIZE%" (
ECHO It does exist, checking size...
FOR %%A IN ("%FSIZE%") DO SET SIZE=%%~ZA
IF "%SIZE%" EQU "765952"
ECHO Size is right, jumping to CIFILES5
GOTO CIFILES5x
) ELSE (
ECHO Size is not right, extracting the needed file...
7z.exe e "Data_X.*" -o"%InsDIR%" -y "LogVbReg_r2.dll"
GOTO CIFILES5x)
ECHO Does not exist; extracting file...
REN Data_X.* Data_X.exe
Data_X.exe
TIMEOUT 2>NUL
REN DATA_X.* Data_X.dat
:CIFILES5x
ECHO Reach cifiles5x
PAUSE
IF EXIST "%TEMP%\9513.CES" (GOTO OPS) ELSE (GOTO LNKD)
제안 해 주셔서 감사합니다! 나는 이것을 다음과 같이 변경한다. (여전히 같은 문제) SET InsDIR = % ProgramFiles (x86) % \ Ces \ Log 파일 Ver \ CD "% InsDIR %" SET FSIZE = LogVbReg_r2.dll – user1834745