window 查询文件大小排序bat
时间: 2024-01-09 19:01:38 浏览: 121
编写一个批处理脚本,可以查询指定目录下的文件大小,并按照文件大小进行排序。
首先,我们需要使用`dir`命令来获取指定目录下的文件列表,并将其保存到一个临时文件中。然后,我们可以使用`for /f`命令来逐行读取这个文件,并提取每个文件的大小信息。
接下来,我们将提取到的文件大小信息存储到一个数组中,并进行排序。排序可以使用`sort`命令进行,我们可以使用`/r`参数来表示按照降序排序。
最后,我们可以遍历排序后的文件大小数组,并使用`dir`命令查询每个文件的详细信息,包括文件名和大小。
以下是一个示例的批处理脚本:
```bat
@echo off
setlocal enabledelayedexpansion
set "dir_path=C:\path\to\directory" // 替换为目标文件夹的路径
set "temp_file=temp.txt"
set "sizes_file=sizes.txt"
rem 获取文件列表并保存到临时文件
dir /b /s /a-d "%dir_path%" > %temp_file%
rem 提取文件大小信息
for /f %%i in (%temp_file%) do (
for %%A in ("%%~i") do set "size=%%~zA"
echo !size! >> %sizes_file%
)
rem 对文件大小进行排序
sort /r %sizes_file% > sorted_sizes.txt
rem 查询文件详细信息
for /f "tokens=*" %%i in (sorted_sizes.txt) do (
for /f "tokens=1,* delims=:" %%a in ('dir /b /s /a-d "%dir_path%" ^| findstr /r /c:"%%i"') do (
echo %%b (%%a)
)
)
rem 清理临时文件
del %temp_file%
del %sizes_file%
del sorted_sizes.txt
```
上述脚本会将查询结果以文件名 (文件大小) 的形式输出。你可以将`dir_path`变量替换为你想要查询的目录的路径。请注意,这个脚本将输出所有文件的详细信息,包括子目录中的文件。如果你只需要查询特定目录下的文件,可以调整`dir`命令的参数。
希望以上信息对你有所帮助!
阅读全文