likeyouli 发表于 2024-2-19 16:40:17

如何通过批处理限制搜索硬盘上指定大小文件(输入的数为kb或MB,而非b)

本帖最后由 likeyouli 于 2024-2-19 16:57 编辑

如题,通过以下批处理,
@echo off
setlocal enabledelayedexpansion
set /p "search_path=请输入搜索路径: "
set /p"min_size=请输入最小文件大小(单位字节): "
for /r "%search_path%" %%F in (*) do (
    set /a file_size="%%~zF"
    if !file_size! GEQ %min_size% (
    echo 文件: %%Fecho 大小: !file_size! 字节      
    )
)
endlocal
我可以搜索某文件夹及子文件夹下指定大小的文件,,但这里无论是我输入的min_size,还是最后显示的文件大小,都是按字节计算的,我的要求:min_size=请输入最小文件大小(单位MB),最后显示的也是文件多少MB,,我搜索了好多,好像应该用set /a file_size="%%~zF"/1024/1024进行换算,但是对于大文件会提示“无效数字 数字精确度限为 32 位”,也就是文件大小超过2147483647字节的都会报错,不知道大家有什么好办法没有 ?(字节这个单位太小了,我搜索限制多大小的文件,喜欢用MB计量)

ningzhonghui 发表于 2024-2-19 16:58:00

等大佬帮你解决吧,看不懂

szwp 发表于 2024-2-19 17:01:35

upe2里俺写过一段算法

likeyouli 发表于 2024-2-19 17:15:12

szwp 发表于 2024-2-19 17:01
upe2里俺写过一段算法

upe2.不知道是个啥

窄口牛 发表于 2024-2-19 17:44:21

kb有点冒险,b还可以,遇到有用又大小一样的概率小得多了,还有就是批处理很慢,费时间,网络里现成的全盘搜索很多。

szwp 发表于 2024-2-19 17:47:13

likeyouli 发表于 2024-2-19 17:15
upe2.不知道是个啥

群文件里

likeyouli 发表于 2024-2-19 18:04:02

szwp 发表于 2024-2-19 17:47
群文件里

告诉我群号吧,,想加入组织

likeyouli 发表于 2024-2-19 18:14:35

窄口牛 发表于 2024-2-19 17:44
kb有点冒险,b还可以,遇到有用又大小一样的概率小得多了,还有就是批处理很慢,费时间,网络里现成的全盘 ...

主要是为了练习批处理,,能用命令解决的,绝不用gui图形,否则怎能练好命令! 我这个需求,批处理如果解决不了,使用powerShell不知道能否解决,据说ps强大的多,可惜我还没空研究。

窄口牛 发表于 2024-2-19 18:27:20

解决文件夹病毒就是批处理全盘搜固定大小的文件,就把文件夹.exe都清理了(当然还得解决主程序,不能只删除这些)。

szwp 发表于 2024-2-19 18:29:13

likeyouli 发表于 2024-2-19 18:04
告诉我群号吧,,想加入组织

1067888280

窄口牛 发表于 2024-2-19 18:50:31

rem 设置文件的大小,文件属性实际大小值
set num=23
rem 设置文件后缀名
set suf=exe
set fus=txt


set root="%cd%"
echo %cd%
call :find %root%
pause & exit



:find
CD %1
for /F %%i in ('dir /A:-D /B *.%suf%;*.%fus%') do if ERRORLEVEL 0 call :deal %%i
for /F %%i in ('dir /A:D /B') do call :find %%i
if "%cd%"==%root% pause&exit
CD ..
goto :EOF

:deal
echo 正在查找 %cd%
set file=%1
for /f %%I in ('dir /A /B %file%') do set numx=%%~zI
rem 对符合条件的文件进行处理
if %num%==%numx% del /s /q %file%
goto :EOF

:EOF

2267981144 发表于 2024-2-19 19:21:19

多谢提供分享!

nathan6498 发表于 2024-2-19 19:58:30

谢谢分享

oh312 发表于 2024-2-20 01:10:24

赞,谢谢分享。

tilltotell007 发表于 2024-2-20 07:22:35

学习了,谢谢楼主。

crtrccrtt 发表于 2024-2-20 09:48:18

本帖最后由 crtrccrtt 于 2024-2-20 11:11 编辑


根目录含空格,也有问题==循环不停
11#楼的批处理,不支持含空格的文件,
页: [1]
查看完整版本: 如何通过批处理限制搜索硬盘上指定大小文件(输入的数为kb或MB,而非b)