zhengzhenhui945 发表于 2024-7-14 01:11

bat批处理之&拖动多个文件到bat图标删除文件

本帖最后由 zhengzhenhui945 于 2024-7-14 01:15 编辑

如题-拖动多个文件到bat图标删除文件,(删除后不进回收站)
把代码保存下来,粘贴到txt,将.txt后缀改为.bat后缀,放到自己需要处理的目录即可
@echo off
setlocal EnableDelayedExpansion

:loop
if "%~1"=="" goto :end
del /f /q "%~1"
rd /S /q "%~1"
shift
goto :loop

:end
endlocal
exit
这段批处理代码的主要作用是遍历传入的参数,并依次删除文件或文件夹。以下是对代码的注释:

[*]@echo off :关闭命令的回显。
[*]setlocal EnableDelayedExpansion :启用延迟环境变量扩展。
[*]:loop :定义一个标签 loop ,用于循环跳转。
[*]if "%~1"=="" goto :end :如果没有传入参数了,就跳转到 :end 标签结束程序。
[*]del /f /q "%~1" :强制、安静地删除指定的文件。
[*]rd /S /q "%~1" :强制、安静地删除指定的文件夹及其子文件夹和文件。
[*]shift :将参数列表中的参数向左移动一位,以便处理下一个参数。
[*]goto :loop :跳转到 loop 标签继续处理下一个参数。
[*]:end :定义结束标签。
[*]endlocal :结束本地环境变量的设置。
[*]exit :退出批处理程序。

anorith 发表于 2024-7-14 10:35

很方便永久删除文件

weipohai 发表于 2024-7-14 10:56

省去了shift键,简单高效。

kangta520 发表于 2024-7-14 11:25

这款一直在用

zylz9941 发表于 2024-7-14 11:56

能否把执行失败的提示一下哟

ot1686 发表于 2024-7-14 13:10

本帖最后由 ot1686 于 2024-7-14 13:15 编辑

其实我只寫了二行就

DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1

即可

还有有高端版

@echo off
:lab1
cls
color 2f
echo.
echo    【顽固目录删除器】
echo -------------------------------
echo.
echo.
echo.
echo 专门快速删除那种不能打开、不能进入、不能删除的顽固目录。
echo.
echo 注意:删除目录将同时删除其子目录中所有数据!
echo.
echo.
set Choice
echo 请将要删除的顽固目录直接拖入本窗口,然后回车:
echo.
set /p Choice
if ""%Choice%"""" goto lab1
DEL /F /A /Q \\?\""%Choice%""
RD /S /Q \\?\""%Choice%""
echo.
echo 删除完成! 任意键退出……
pause>nul

zcx200601 发表于 2024-7-14 14:57

ot1686 发表于 2024-7-14 13:10
其实我只寫了二行就

DEL /F /A /Q \\?\%1


复制过来,改变成.bat文件,双击一闪而过,不能执行。啥情况?WIN11

lazhou 发表于 2024-7-14 15:00

ot1686 发表于 2024-7-14 13:10
其实我只寫了二行就

DEL /F /A /Q \\?\%1


大佬,将要删除的文件拖到高端版批处理上,批处理只闪一下绿色界面就退出了,文件实际没删除,不知道哪里我没弄合适,谢谢大佬!

zhengzhenhui945 发表于 2024-7-14 20:11

还有个奇特的玩法,只删除文件从而保留文件夹@echo off
echo
DEL /F /A /Q "%~1"

ot1686 发表于 2024-7-15 02:16

lazhou 发表于 2024-7-14 15:00
大佬,将要删除的文件拖到高端版批处理上,批处理只闪一下绿色界面就退出了,文件实际没删除,不知道哪里 ...

這個运行后才把文档托曳进去去即可
页: [1] 2
查看完整版本: bat批处理之&拖动多个文件到bat图标删除文件