标题: [文件操作] [已解决]删除文件命令DEL/S/Q/F和RD/S/Q哪个效率高? [打印本页]
作者: semiuel 时间: 2023-12-8 20:20 标题: [已解决]删除文件命令DEL/S/Q/F和RD/S/Q哪个效率高?
今天下午维修一台电脑(i3-10100/8G/500G/WIN10)的时候碰到一个棘手问题。
新装的电脑(2023.08买的)WIN10系统在显示欢迎登陆界面需要转圈15分钟才能进桌面。
排查后发现%TEMP%目录里面临时文件超级多。
考虑到电脑安装了用友财务软件,不能重装系统,只能删临时文件。
WIN+R运行%TEMP%后打开资源管理器窗口,光是显示所有文件花了20分钟左右,显示有351万项目(不包含子目录里的文件),
CTRL+A全选又花了20多分钟,尝试SHIFT+DEL失败,电脑直接无响应。
重启后突然想到电脑安装了火绒,用工具里面的垃圾清理花了一个多小时把大部分临时文件删掉了。
然后又用DEL/S/Q/F删了一遍,发现这个命令不能删除子目录,又用RD/S/Q删了一遍,才总算把这个目录清空(有几个系统占用文件删不了)。
晚上回到家搜了一下有关这两个命令的信息,
DEL/S/Q/F只能删文件,不能删子目录。
RD/S/Q可以删文件,也可以删子目录。
如果下午我直接用RD/S/Q,不知道会不会快一点。
不知道论坛里的大佬们有没有比较过这两个命令的效率。
作者: czjt1234 时间: 2023-12-8 20:40
除了不能删除子文件夹,速度差不多,估计差个零点零零几秒吧
作者: semiuel 时间: 2023-12-8 20:43
DOS命令跟WINDOWS里操作删除比呢?
作者: semiuel 时间: 2023-12-8 20:45
以下午我维修的电脑为例,包含子目录里的文件应该是超过500万个文件的,不知道哪个会更快。
作者: czjt1234 时间: 2023-12-8 20:50
windows慢多了,他是读取统计所有文件,再删除
命令行是直接删除
作者: semiuel 时间: 2023-12-8 21:25
清空临时文件目录后欢迎登陆界面只需要等2秒钟就可以进桌面了。
作者: 77七 时间: 2023-12-9 11:48
- @echo off
- md a b
- for /l %%l in (1,1,30000) do (
- cd.>a\%%l.x
- cd.>b\%%l.x
- )
- pause
- echo %time%
- del /s /q /f a\*.x 1>nul 2>nul
- echo %time%
- pause
- echo %time%
- rd /s /q b
- echo %time%
- pause
复制代码
作者: locoman 时间: 2023-12-9 17:57
我觉得:你既然是维修,最好是采用U盘PE启动绕过硬盘OS启动,就能很快进入系统,再用CMD命令del /s /q /f 和 rd /s /q 应该能很快删除硬盘的%TEMP%里面的文件了。
作者: Five66 时间: 2023-12-10 00:26
感觉 DEL/S/Q/F 快点
作者: semiuel 时间: 2023-12-10 16:56
借鉴了一部分代码,测试这两个命令删除文件的速度。- @echo off
-
- setlocal
- set /p num=测试用文件数:
- echo 正在创建测试用的文件
- set start=%time%
- md a b
-
- for /l %%l in (1,1,%num%) do (
-
- cd.>a\%%l.x
-
- cd.>b\%%l.x
-
- )
-
- call :timer
- echo 正在用del /s/q/f命令删除文件
- set start=%time%
- del /s /q /f a\*.x 1>nul 2>nul
-
- call :timer
- echo 正在用rd /s/q命令删除文件
- set start=%time%
- rd /s /q b
-
- call :timer
- pause
- rd a >nul
-
- :timer
- set end=%time%
- set options="tokens=1-4 delims=:.,"
- for /f %options% %%a in ("%start%") do set start_h=%%a&set /a start_m=100%%b %% 100&set /a
-
- start_s=100%%c %% 100&set /a start_ms=100%%d %% 100
- for /f %options% %%a in ("%end%") do set end_h=%%a&set /a end_m=100%%b %% 100&set /a
-
- end_s=100%%c %% 100&set /a end_ms=100%%d %% 100
- set /a hours=%end_h%-%start_h%
- set /a mins=%end_m%-%start_m%
- set /a secs=%end_s%-%start_s%
- set /a ms=%end_ms%-%start_ms%
- if %ms% lss 0 set /a secs = %secs% - 1 & set /a ms = 100%ms%
- if %secs% lss 0 set /a mins = %mins% - 1 & set /a secs = 60%secs%
- if %mins% lss 0 set /a hours = %hours% - 1 & set /a mins = 60%mins%
- if %hours% lss 0 set /a hours = 24%hours%
- if 1%ms% lss 100 set ms=0%ms%
- set /a totalsecs = %hours%*3600 + %mins%*60 + %secs%
- echo 耗时:%hours%:%mins%:%secs%.%ms% (%totalsecs%.%ms%秒)
复制代码
作者: semiuel 时间: 2023-12-10 17:02
电脑配置有点老,先试了一下10万文件
测试用文件数:100000
正在创建测试用的文件
耗时:0:1:45.44 (105.44秒)
正在用del /s/q/f命令删除文件
耗时:0:0:32.32 (32.32秒)
正在用rd /s/q命令删除文件
耗时:0:0:30.22 (30.22秒)
请按任意键继续. . .
作者: ShowCode 时间: 2023-12-10 19:06
回复 11# semiuel
我的电脑上测试10万个文件:
del /s /q /f 耗时 16.71 秒
rd /s /q 耗时 13.22 秒
作者: semiuel 时间: 2023-12-10 19:09
回复 12# ShowCode
这么快啊!我换了家里电脑测试也是rd/s/q更快。
作者: semiuel 时间: 2023-12-11 08:22
文件数量达到1000万后反而DEL/S/Q/F快了。
测试用文件数:10000000
正在创建测试用的文件
耗时:02:19:55.77 (8395.77秒)
正在用del /s/q/f命令删除文件
耗时:00:58:10.98 (3490.98秒)
正在用rd /s/q命令删除文件
耗时:01:04:04.35 (3844.35秒)
请按任意键继续. . .
作者: hnfeng 时间: 2023-12-11 08:43
删除大量文件和文件夹,使用 RD /Q /S 干脆,连根拔起
作者: _avatar_ 时间: 2023-12-12 00:43
回复 5# czjt1234
如果是右键删除, windows 的确是要慢一些,因为是要把文件移动到回收站,这个并非真的删除,只是移动和修改名称,当然就会慢很多。
而如果是 shift + del 直接删除,那效率其实是差不多的
作者: semiuel 时间: 2023-12-12 10:24
回复 16# _avatar_
一个目录下面有几百万个文件的时候,打开文件管理器显示这些文件需要几十分钟,CTRL+A全选这些文件需要几十分钟,SHIFT+DEL按键按下到跳出删除文件进度条的小窗口又要几十分钟,然后才是漫长的删除过程。
作者: newswan 时间: 2024-1-15 23:35
进 pe 用diskgen 可能快一些
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |