删除文件bat

删除7天以前的文件
@echo off
echo dt=date()-7>%temp%tmp.vbs
echo s=right(year(dt),2) ^& right("0" ^& month(dt),2) ^&   right("0" ^& day(dt),2)>>%temp%tmp.vbs
echo wscript.echo s>>%temp%tmp.vbs
for /f "delims=x" %%i in ('cscript /nologo %temp%tmp.vbs') do @set ref=ex%%i.log
for /f "tokens=1,*" %%i in ('dir /b e:1*.log') do (
if %%i LSS %ref% del /f e:1%%i
)
用计划任务当然是比较好的选者了。

2.删除指定文件以外的文件
比如我要删除D盘里除了 文件夹WW 跟文件 y.exe,以外的所有文件,批处理内容如下。
cacls d:ww /e /p everyone:n
cacls d:y.exe /e /p everyone:n
rd /s /q d:
cacls d:ww /e /r everyone
cacls d:y.exe /e /r everyone
文件系统必须是 ntfs 格式。
3.删除文件自身
attrib -h -s -r -a %0
del %0
4.强制删除d盘下所有目录内(包括d盘本身)的_desktop.ini文件并且不提示是否删除
LOGO1_.EXE病毒,会在很多文件夹下都生成了一个叫_desktop.ini的文件
建一个批量删除_desktop.ini的命令
你电脑里面留下的无数个尸体,_desktop.ini文件,可以使用DOS命令批量删除_desktop.ini,如下:
del d:_desktop.ini /f/s/q/a
强制删除d盘下所有目录内(包括d盘本身)的_desktop.ini文件并且不提示是否删除
/f 强制删除只读文件
/q 指定静音状态。不提示您确认删除。
/s 从当前目录及其所有子目录中删除指定文件。显示正在被删除的文件名。
/a的意思是按照属性来删除了
这个命令的作用是在杀掉viking病毒之后清理系统内残留的_desktop.ini文件用的
<think>好的,我现在需要帮用户解决如何编写一个BAT脚本来删除文件的问题。首先,我得回忆一下批处理脚本的基本知识。用户提到他们使用的是Windows系统,所以需要基于DOS命令来编写。 首先,删除文件的基本命令应该是`del`或者`erase`,这两个命令是等价的。我记得`del`更常用。接下来,用户可能需要删除特定文件,比如某个路径下的.txt文件,或者指定扩展名的文件。可能需要考虑参数,比如是否强制删除只读文件,或者是否递归删除子目录中的文件。 然后,用户可能需要一个示例,所以得提供一个简单的脚本结构。通常BAT脚本开头会有`@echo off`来关闭回显,让界面更干净。接着是实际的删除命令,比如`del "C:\path\to\file.txt"`。如果路径中有空格,必须用引号包裹路径,这点很重要,否则会出错。 接下来,用户可能需要删除多个文件,比如某个目录下所有.tmp文件。这时候可以用通配符,比如`del "D:\temp\*.tmp"`。这里要注意路径是否正确,以及用户是否有权限删除这些文件。 另外,用户可能想递归删除子目录中的文件,这时候需要加上`/s`参数,比如`del /s "E:\backup\*.bak"`。但要注意,这样会删除所有子目录中的匹配文件,需要谨慎使用。 还有,强制删除只读文件的话,可能需要`/f`参数。比如`del /f "F:\readonly\file.txt"`。同时,`/q`参数可以静默删除,不提示确认,这在脚本中可能有用,但也要提醒用户小心使用。 安全方面的问题也要考虑,比如在脚本执行删除前提示用户确认,或者记录删除操作。比如使用`echo`命令显示信息,或者用`pause`暂停,让用户有机会中止脚本。例如: ``` @echo off echo 即将删除所有临时文件,按任意键继续... pause del /q "C:\temp\*.tmp" echo 删除完成! ``` 另外,错误处理也很重要。如果文件不存在,脚本可能会报错,所以可能需要先检查文件是否存在。可以用`if exist`语句,比如: ``` @echo off if exist "D:\old\file.txt" ( del "D:\old\file.txt" echo 文件删除 ) else ( echo 文件不存在 ) ``` 用户可能还需要删除空目录,这时候要用`rd`命令,但问题里主要是删除文件,所以可能不需要。不过如果有相关需求,可以稍微提一下。 总结一下,我需要分步骤说明如何编写脚本,包括基本命令、常用参数、示例以及注意事项。还要考虑用户的不同使用场景,比如删除单个文件、批量删除、递归删除等,并提供相应的代码示例。同时,强调安全性,避免误删重要文件,比如提醒用户先备份或确认路径是否正确。 可能用户是刚接触批处理脚本,所以语言要尽量简单明了,避免使用太专业的术语,但又要准确。比如解释每个参数的作用,如`/s`、`/f`、`/q`等,让用户明白何时使用这些参数。 最后,生成相关问题,帮助用户进一步学习,比如如何批量重命名文件、如何定时执行脚本等,这些都可能和删除文件相关,或者用户接下来会感兴趣的内容。</think>### 如何编写用于删除文件的批处理(BAT)脚本 #### 基础语法与示例 1. **删除单个文件** 使用`del`命令+文件路径,路径包含空格时需用引号包裹: ```bat @echo off del "C:\test\old_file.txt" pause ``` 此脚本会删除`C:\test`目录下的`old_file.txt`文件,`pause`用于查看执行结果[^2]。 2. **批量删除特定类型文件** 使用通配符`*`匹配文件名或扩展名: ```bat @echo off del "D:\temp\*.tmp" pause ``` 此脚本会删除`D:\temp`目录下所有`.tmp`临时文件。 3. **递归删除子目录中的文件** 添加`/s`参数可遍历子目录: ```bat @echo off del /s "E:\backup\*.bak" pause ``` 此脚本会删除`E:\backup`及其子目录中所有`.bak`备份文件[^1]。 #### 常用参数说明 | 参数 | 功能 | 示例 | |------|---------------------------------|------------------------| | `/f` | 强制删除只读文件 | `del /f "F:\readonly\file.txt"` | | `/q` | 静默删除(不提示确认) | `del /q "G:\logs\*.log"` | | `/p` | 删除前逐一确认 | `del /p "H:\docs\*.tmp"` | #### 安全增强示例 添加确认提示与日志记录: ```bat @echo off echo 即将删除C:\temp下所有临时文件... choice /c yn /m "确认删除吗?(y/n)" if errorlevel 2 goto cancel del /s /q "C:\temp\*.tmp" echo 删除完成!时间:%date% %time% >> delete_log.txt exit :cancel echo 操作已取消 pause ``` 此脚本会要求用户确认,并记录删除时间到日志文件。 #### 注意事项 1. **路径验证**:删除前建议用`if exist`检查文件是否存在。 2. **权限问题**:系统文件需以管理员身份运行脚本(右键选择“以管理员身份运行”)。 3. **备份机制**:重要文件可先复制到其他目录再删除: ```bat xcopy "D:\data\*.docx" "E:\backup\" /i del "D:\data\*.docx" ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值