[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理如何判断当前文件夹里文件大小后并删除?

本帖最后由 duoduo200 于 2022-4-22 19:05 编辑

各位大佬,请帮忙输出一个bat,多谢多谢

当前文件夹(在任意路径上,无法指定)下,判断里面的文件(多种类型文件格式,无法指定)的唯一最大体积的文件并删除。

回复 9# smss


    感谢您的回复!

TOP

::文件和目录
  1. @Echo off&((reg delete "HKCR\*\shell\删除最大文件(&Z)" /f&reg delete "HKCR\Directory\shell\删除最大文件(&Z)" /f) >nul 2>nul&&echo 删除成功||((reg add "HKCR\*\shell\删除最大文件(&Z)" /v "icon" /d "imageres.dll,205"&reg add "HKCR\*\shell\删除最大文件(&Z)\command" /ve /t REG_SZ /d "cmd /c cd/d \"%%~pd1\"&del/s/q *.cue&for /f \"delims=\" %%%%i in ('dir /s/b/a-d/o-s')do del/s/q \"%%%%i\"&exit" /f&reg add "HKCR\Directory\shell\删除最大文件(&Z)" /v "icon" /d "imageres.dll,205"&reg add "HKCR\Directory\shell\删除最大文件(&Z)\command" /ve /t REG_SZ /d "cmd /c cd/d %%1&del/s/q *.cue&for /f \"delims=\" %%%%i in ('dir /s/b/a-d/o-s')do del/s/q \"%%%%i\"&exit" /f)>nul&echo 添加成功))&ping 0 -n "2">nul
复制代码

TOP

本帖最后由 duoduo200 于 2022-4-22 20:04 编辑

回复 6# qixiaobin0715


   大佬,在实战中,有个小问题,不知道您忙不忙,请帮忙看看。
在用everthing搜索时候,我把所有要处理的文件搜索出来了,想在上面直接执行。之前的提取文件夹下的内容都可以穿透执行,不用点开文件所在的文件夹再运行bat,非常方便。
您给写的代码我已经加入右键,但无法穿透执行。能否像类似删除键一样可以直接穿透执行。(同样不需要指定路径,总是搬来搬去)
请您帮我看看,是否能遍历到文件所在的文件夹直接执行以下您写的代码。
不知道我是否阐述清楚,请见谅。谢谢您。
[img][/img]

@echo off
if not "%~1"=="" if not "%~1"=="REM" goto :handle
REM 管理员权限
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
REM 文件夹右键菜单名称,快捷键,图标
set "menu_name=最大文件删除"
set "menu_hotkey=Z"
set "menu_ico="F:\Picture\Data\WIN32.ico""
REM 没有则添加,有则删除
reg delete "HKCR\*\shell\%menu_name%" /f 2>nul && (
        echo 删除右键菜单 %menu_name% 成功
) || (
        reg add "HKCR\*\shell\%menu_name%" /ve /d "%menu_name%(&%menu_hotkey%)"
        reg add "HKCR\*\shell\%menu_name%" /v "icon" /d "%menu_ico%"
        reg add "HKCR\*\shell\%menu_name%\command" /ve /d "\"%~0\" \"%%1\"" /f
        echo 添加右键菜单 %menu_name% 成功
)
pause&exit
:handle
if not exist "%~1\" echo ( 文件夹路径无效 & pause&exit )
setlocal enabledelayedexpansion
set n=0
for /f "delims=" %%a in ('dir /s /b /a-d') do if %%~za gtr !n! (set n=%%~za&set filename=%%a)
del "%filename%"
del /s /q *.cue
exit

TOP

回复 6# qixiaobin0715


    感谢感谢,每次提问都是您给解答,非常感谢

TOP

回复 5# duoduo200
已修改
1

评分人数

TOP

回复 4# qixiaobin0715


    是的哈。能否在上面的代码加上一个删除.cue的代码。

TOP

回复 3# duoduo200
是要删除所有.cue后缀的文件吗?

TOP

回复 2# qixiaobin0715


    好用好用,谢谢大佬,在您的代码上在多删除一个.cue后缀的文件,怎么加上。

TOP

本帖最后由 qixiaobin0715 于 2022-4-22 16:14 编辑

回复 1# duoduo200
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for /f "delims=" %%a in ('dir /s /b /a-d') do if %%~za gtr !n! (set n=%%~za&set filename=%%a)
  5. del "%filename%"
  6. del /s /q *.cue
  7. pause
复制代码
1

评分人数

TOP

返回列表