写一个bat脚本,删除指定目录的指定文件
时间: 2024-09-16 13:02:41 浏览: 323
要创建一个批处理(.bat)脚本来删除指定目录下的特定文件,可以按照以下步骤编写:
- 打开记事本(Notepad),新建一个文本文件,然后输入以下内容:
@echo off
setlocal enabledelayedexpansion
:: 设置要删除的目录路径
set "dir_path=H:\tem2"
:: 设置要保留的文件名列表,这里以7za.exe和must.txt为例
set "keep_files=7za.exe,must.txt"
:: 删除除保留文件以外的所有文件和子目录
for /r "%dir_path%" %%f in (*) do (
if not "%%~nf"=="%keep_files%" (
del "%%f"
echo 删除了: %%f
)
)
:: 删除指定文件夹,但不递归删除其内容
rd /s /q "%dir_path%\a"
rd /s /q "%dir_path%\sdfg"
echo 清理完成!
pause
保存文件并命名为
delete_files.bat
,例如在H:\tem2
目录下。双击运行这个bat文件,它会删除指定目录下除了指定文件和文件夹外的所有其他文件和子目录。
注意:在实际操作时,确认目录路径、文件名以及要保留的文件是否准确无误,因为一旦删除就无法恢复。
相关问题
写一个bat脚本,删除本地指定目录的全部文件及子目录
要创建一个BAT批处理脚本来删除本地指定目录及其所有文件和子目录,你可以使用rd /s /q
命令。这里是一个简单的示例[^1]:
@echo off
setlocal enabledelayedexpansion
set "dir_to_delete=C:\path\to\your\directory"
if exist "%dir_to_delete%" (
rd /s /q "%dir_to_delete%"
echo Directory %dir_to_delete% has been deleted.
) else (
echo Directory does not exist.
)
endlocal
在这个脚本中,@echo off
关闭命令提示符的回显,setlocal enabledelayedexpansion
用于变量扩展,set "dir_to_delete=..."
定义你要删除的目录路径,if exist
检查目录是否存在,如果存在则使用rd /s /q
递归删除目录及其内容。
请注意替换C:\path\to\your\directory
为实际的目录路径。执行这个脚本时,确认你有权限删除这些文件和目录,因为删除操作不可逆。
写一个bat脚本,删除本地的指定目录
你可以创建一个批处理(BAT)脚本来删除本地指定目录下的文件,但要遵循特定条件。以下是一个示例脚本,它将在保留三天内文件的同时,排除特定名称的文件:
@echo off
setlocal enabledelayedexpansion
rem 指定要删除文件的目录
set "dir_path=C:\path\to\your\directory"
rem 获取当前日期,用于判断文件的修改时间
for /f "tokens=2 delims=/" %%a in ('date /t') do set current_date=%%a%%b%%c
rem 计算三天前的日期
set /a three_days_ago=%current_date% - 3
rem 使用find命令查找并删除除保留文件之外三天以上的文件
for /r %dir_path% %%f in (*) do (
if "!current_date!" LSS "!three_days_ago!" (
if not "%%~nxf" EQU "STAN04.LOG" IF not "%%~nxf" EQU "STAN05.LOG" IF not "%%~nxf" EQU "STAN06.LOG" (
del "%%f"
)
)
)
echo 删除操作完成!
在这个脚本中,dir_path
变量需替换为你实际要删除文件的目录路径。运行此脚本时,它会遍历该目录及其子目录,只删除那些超过三天未修改且不在保留名单上的文件。
阅读全文