我是新来的,我的英语不是很好所以首先,请原谅我。
我的问题是这批继续读取变量“IF EXIST %FSIZE%”中的字符串;我的意思是,如果该变量不存在,则批处理继续在 () 括号内读取,而不是继续其余的刺。
如果存在 %FSIZE%,则批处理执行我分配的 2 个任务: (1.) 如果大小相等,则转到 cifiles5x。(2.) 如果大小不相等,它使用 7z 提取我想要的文件。
如果 %FSIZE% 不存在,则批次会一直说“此时没有预期到 765952”。
我正在 ss64.com 上接受建议,例如在比较数值时不要使用括号或引号(%size% EQU 765952),但我不明白为什么它不会继续到 ) 结束的地方。
我也尝试将命令与“&&”链接起来,这样我就可以删除括号,但结果是一样的。
我知道有 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)