【发布时间】:2015-07-15 05:59:46
【问题描述】:
我想在我的不同驱动器中搜索大小低于 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
谢谢
【问题讨论】:
-
在整个驱动器上?这可能真的很慢..
-
实际上,我已经在整个驱动器上调用 dir /s /b 并且它并没有那么慢(不到一分钟)。对我来说最好的解决方案应该是生成一个 DIR.TXT 文件并将其用于脚本;但我找不到使用 DIR 命令的方法来一次显示“完整路径”和文件的大小。 (因为我脚本的另一个模块是搜索特定文件)。
-
仅供参考:
for /f "delims=" %%a in ('dir /s /b /a-d c:') do ( ...。注意"delims="中没有空格。注意dir /s /b /a-d c:将从c:驱动器上的当前目录开始;使用dir /s /b /a-d c:\覆盖整个驱动器...
标签: batch-file batch-processing