我想搜索我的不同驱动器中的文件大小低于800Ko,并启动它们的MD5校验和(使用Microsoft工具FCIV)。如何搜索大于特定大小的文件并在其上执行某些操作?
我认为这可以使用dir命令完成,但我不知道如何检查文件大小(低于800Ko),然后能够检索每个文件的完整路径并将其添加为FCIV命令的参数。
编辑:我使用此代码,但实际上这个过程永远不会结束,因为它是在我有“访问被拒绝”的目录上找到的。 有可能跳过这些目录?
@echo off
setLocal EnableDelayedExpansion
REM for /f "tokens=* delims= " %%a in ('dir /A HS /s /b c:\') do (
for /f "tokens=* delims= " %%a in ('dir c:\ /s /b /A-d') do (
if /I %%~Za LEQ 600000 (
echo %%~Za
fciv -md5 "%%~a" -xml DatabaseMD5.xml
)
)
@pause
谢谢
整个驱动器?这可能真的很慢.. – npocmaka
其实,我已经在整个驱动器上调用dir/s/b,并且它不是很慢(不到一分钟)。对我来说,最好的解决方案应该是生成一个DIR.TXT文件,并将其用于脚本;但我没有找到DIR命令的方式来使“全路径”和一次显示文件的大小。 (因为我的脚本的另一个模块是搜索特定文件)。 – Isabelle
仅供参考':for/f“delims =”%% a in('dir/s/b/ad c:')do(...'。注意''“delims =”' s/b/ad c:'将从'c:'驱动器上的当前目录开始;使用'dir/s/b/ad c:\'覆盖整个驱动器... – JosefZ