Batch file 如果文件大小等于这个,转到这个,转到那个

Batch file 如果文件大小等于这个,转到这个,转到那个,batch-file,if-statement,Batch File,If Statement,我有一个批处理文件,它使用“move”命令将DLL文件从C:\Program Files\directory\file.DLL重命名为C:\Program Files\directory\file.DLL.orig,该命令工作得非常好。 批处理文件的下一部分使用“copy”命令将新版本的file.dll从网络位置复制到C:\Program Files\directory\,该命令也可以正常工作。 我有一个作为GPO运行的脚本,它也可以正常工作 原始DLL文件为38892 KB,从网络位置复制的D

我有一个批处理文件,它使用“move”命令将DLL文件从
C:\Program Files\directory\file.DLL
重命名为
C:\Program Files\directory\file.DLL.orig
,该命令工作得非常好。 批处理文件的下一部分使用“copy”命令将新版本的
file.dll
从网络位置复制到
C:\Program Files\directory\
,该命令也可以正常工作。 我有一个作为GPO运行的脚本,它也可以正常工作

原始DLL文件为38892 KB,从网络位置复制的DLL文件为38856 KB。 我不希望每次用户重新启动计算机时都替换此文件。我想修改脚本,以便它检查
C:\Program Files\directory\
位置中的DLL文件是否为38892 KB,如果为38892 KB,它将把新的DLL文件复制到该位置,但如果为38856 KB,它将退出脚本。 如何将if语句放入批处理文件中以检查这一点?多谢各位

for %%A in ("C:\Program Files\directory\file.dll") do if "%%~zA"=="38892" goto :NewIsInstalled
rem ... OK, now we know the installed DLL is not the expected size so copy in the right one.
---或---

请参阅“for”和“call”的帮助以了解“%~z1”

---或---


请参阅“for”和“call”的帮助以理解“%~z1”。

或将其用作第一行:注意,文件大小以字节为单位

@echo off
for %%A in ("C:\Program Files\directory\file.dll") do if "%%~zA"=="38856" goto :EOF

或者将其用作第一行:注意,文件大小以字节为单位

@echo off
for %%A in ("C:\Program Files\directory\file.dll") do if "%%~zA"=="38856" goto :EOF

批处理文件使用和命令行使用混合使用%%和%。目前,这两种方式都不起作用。批处理文件和命令行的使用混合使用%%和%。从目前的情况看,这两种方法都行不通。