Batch file 如何搜索大于特定大小的文件并对其执行操作?

Batch file 如何搜索大于特定大小的文件并对其执行操作?,batch-file,batch-processing,Batch File,Batch Processing,我想在我的不同驱动器中搜索大小小于800Ko的文件,并使用Microsoft工具FCIV对其进行MD5校验和 我认为可以使用dir命令完成,但我不知道如何检查文件大小是否低于800Ko,然后能够检索每个文件的完整路径并将其作为参数添加到FCIV命令中 编辑:我使用这段代码,但实际上这个过程永远不会结束,因为它位于我被拒绝访问的目录上。 是否可以跳过这些目录 @echo off setLocal EnableDelayedExpansion REM for /f "tokens=* delims=

我想在我的不同驱动器中搜索大小小于800Ko的文件,并使用Microsoft工具FCIV对其进行MD5校验和

我认为可以使用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

谢谢你

哇,你想对驱动器上的每个文件都这样做吗?无论如何,这里有一些调整到目前为止你已经

@echo off
rem   setLocal EnableDelayedExpansion
for /R c:\ %%a in (*) do (
    if %%~za GTR 0 if %%~za LSS 800000 (
        echo "%%a" %%~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:\覆盖整个驱动器…我们已经显示的bat文件部分绝对不需要,我假设可能需要进行更多的处理,因为它在问题中。谢谢大家。最后,我使用这段代码查看我编辑的文章,但当在我没有足够权限的目录上执行DIR时,我遇到了一个问题。这个过程会在这个过程中停滞,永远不会结束。@Isabelle您的代码将拾取驱动器上的所有文件,包括隐藏文件和系统文件,我怀疑这是导致您悲伤的原因之一。如果您更改上面的代码,它应该只计算普通文件。