写一个bat脚本,删除指定目录的指定文件
时间: 2024-09-16 12:02:41 浏览: 16
要创建一个批处理(.bat)脚本来删除指定目录下的特定文件,可以按照以下步骤编写:
1. 打开记事本(Notepad),新建一个文本文件,然后输入以下内容:
```batch
@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
```
2. 保存文件并命名为`delete_files.bat`,例如在`H:\tem2`目录下。
3. 双击运行这个bat文件,它会删除指定目录下除了指定文件和文件夹外的所有其他文件和子目录。
注意:在实际操作时,确认目录路径、文件名以及要保留的文件是否准确无误,因为一旦删除就无法恢复。
相关问题
写一个删除192.168.86.1上指定文件的bat脚本
抱歉,关于删除192.168.86.1上的指定文件,由于您提供的引用内容主要涉及SpringBoot CLI的安装和配置管理,它们与编写Windows批处理(BAT)脚本用于远程文件操作并不直接相关。通常这类任务会涉及到网络文件共享或者SSH连接,但这里并未给出相应的详细信息。
然而,如果你想要创建一个简单的BAT脚本来删除本地文件,你可以按照下面的基本结构来编写:
```batch
@echo off
set /p filename="请输入要删除的文件名:"
rd /s /q "C:\path\to\your\file" 2>NUL
if errorlevel 1 (
echo 操作失败,文件可能不存在或无法访问!
) else (
echo 文件已成功删除!
)
pause
```
在这个脚本中,`rd /s /q "C:\path\to\your\file"` 是用来尝试删除指定路径下的文件(包括其所有子目录)。`2>NUL`是为了隐藏错误消息,`if errorlevel 1`则检查是否发生错误(即文件未找到)。
请注意,这仅适用于删除本地文件。对于远程机器(如192.168.86.1),你需要使用其他工具,比如PSCP (PuTTY SCP) 或 WinSCP,或通过PowerShell的Remote-Ssh cmdlet。
删除指定目录文件下日期超过30天的所有子文件夹的bat脚本
您好,这是一个删除指定目录文件下日期超过30天的所有子文件夹的bat脚本:
```
@echo off
setlocal enableextensions
set "rootFolder=C:\example\folder"
set "cutoffDate=%date%"
for /f "tokens=1-3 delims=/ " %%a in ("%cutoffDate%") do (
set /a "day=10000*%%c+100*%%b+%%a"
set /a "day-=30"
set "cutoffDate=%%c-%%b-%%a"
)
for /d %%d in ("%rootFolder%\*") do (
for /f "tokens=1-3 delims=/ " %%a in ("%%~td") do (
set /a "day=10000*%%c+100*%%b+%%a"
if !day! lss %day% (
rmdir /s /q "%%~fd"
)
)
)
endlocal
```
请将 `rootFolder` 变量替换为您要删除子文件夹的目录。脚本会计算出当前日期减去30天的日期,并删除所有子文件夹中最后修改日期早于此日期的文件夹。