求救啊,想计算文件夹里.rar个数,如果大于8删除最早的那个
bat吧
全部回复
仅看楼主
level 7
魈丑 楼主
脚本执行不了,怎么回事啊,这个代码我百度的
2018年06月01日 09点06分 1
level 11
怎么执行不了?
2018年06月01日 11点06分 2
一闪而过啊,文件也没有被删除[啊]
2018年06月01日 12点06分
@魈丑 第三行的|不用
2018年06月01日 12点06分
level 8
第三行那个像|一样的东西是光标吧
应该问题有两个
1:if 后面的 "equ" 是 等于 的意思,应该用 "gtr" (大于)
2:相当不建议在括号内放标签 (未定义的行为)
后面三行改成:
)
goto :eof
:x
echo 删除成功!
2018年06月02日 00点06分 3
改完还是不行,不闪退了,但是也不执行统计数量和删除操作啊[泪]
2018年06月02日 01点06分
level 7
魈丑 楼主
@echo off
echo 正在计算压缩文件数量.....
set f=rar
for /f %%i in ('dir /b /s /a-d *.%f% ^find "." /c') do set s=%%i
echo %f% 文件数量有:%s%
if %s% gtr 8 (
set p=d:/db_backup/
for /f %%i in ('dir %p% /a-d *.%f% ^/b /od /tc') do del %%i /a /f
)
goto :eof
:x
echo 删除成功!
这样写所有文件都被删除了,要怎么改才能执行判断删除最早的一个文件[委屈]
2018年06月02日 01点06分 4
level 11
要用到dir /d
2018年06月02日 01点06分 5
还是被全部删除掉了
2018年06月02日 03点06分
level 6
我知道,但是就不告诉你
2018年06月02日 05点06分 6
好气噢[太开心]
2018年06月02日 06点06分
level 6
@echo off&color a&setlocal enabledelayedexpansion
set b=0
for /f "delims=" %%a in ('dir /a-d /o-d /tc /s /b "*.txt" 2^>nul') do (
set a=%%a
set /a b+=1
)
)
if !b! gtr 8 (del /s /f /q !a! >nul) else (echo;文件少于8个!)
pause >nul
2018年06月02日 06点06分 8
level 11
成功了吗?
2018年06月02日 08点06分 9
嗯呐[哈哈]
2018年06月02日 14点06分
level 8
文件夹路径要用反斜杠。
2018年06月03日 02点06分 10
level 1
1111
2020年06月01日 06点06分 11
1