批处理文件检查并比较文件夹中 .log 文件的大小

批处理文件检查并比较文件夹中 .log 文件的大小

我必须从大小大于 10 MB 的文件夹中查找文件。

请指导我如何完成这项任务。

答案1

这是一个简单明了的 PowerShell 解决方案(作为批处理的替代方案)

gci 'C:\yourpath\yourfolder' | % { get-item $_.FullName | ? { $_.length -gt 10mb } }

我们在这里做的事情是:

  • 使用以下方法获取文件夹中的所有文件gci
  • foreach-object通过别名遍历所有文件%
  • 通过检查项目文件长度get-item
  • where-object仅通过别名查询选择大于 10mb 的文件?

编辑: 要在批处理文件中而不是 PowerShell 本身中使用此命令,您可以写入:

powershell -command "gci 'C:\yourpath\yourfolder' | % { get-item $_.FullName | ? { $_.length -gt 10mb } }"

答案2

列出给定目录及其子目录中所有大于 10MB 的文件。

@echo off

setlocal enabledelayedexpansion

set "SEARCH_DIR=%~1"

echo Usage: %~nx0 directory
echo Lists all files in given directory and its subdirectories larger than 10MB.

if not exist "%SEARCH_DIR%" (
    echo "%SEARCH_DIR%" does not exist.
    exit /b 1
)

for /R "%SEARCH_DIR%" %%F in (*) do (
    if exist "%%F" if %%~zF GTR 10000000 echo %%F
)

示例:运行上述批处理脚本(本例中名为 script.bat)列出 D 盘中所有大于 10MB 的文件。

C:\>script.bat D:

来源:批处理脚本用于在 Windows XP 中的 D 盘中查找大于 10MB 的文件

相关内容