帮我编写一个删除文件夹下3天前的文件,但是保留名字为 STAN04.LOG, STAN05.LOG, STAN06.LOG的文件的bat脚本
时间: 2023-08-31 09:44:05 浏览: 161
### 回答1:
好的,以下是编写删除文件夹下3天前的文件,但是保留名字为 STAN04.LOG, STAN05.LOG, STAN06.LOG的文件的bat脚本的代码:
```
@echo off
setlocal enabledelayedexpansion
set folder=C:\folder
set log1=STAN04.LOG
set log2=STAN05.LOG
set log3=STAN06.LOG
for /f "delims=" %%i in ('dir %folder% /a-d /b') do (
set filename=%%i
if not "!filename!" == "%log1%" if not "!filename!" == "%log2%" if not "!filename!" == "%log3%" (
for /f "usebackq" %%t in (`powershell -Command "(Get-Item '%folder%\!filename!').LastWriteTime"`) do (
if "%%t" LEQ "%date:~4,2%-%date:~7,2%-%date:~10,4%" (
del %folder%\!filename!
)
)
)
)
echo Done.
```
以上代码假设文件夹路径为 `C:\folder`,要保留的文件名分别为 `STAN04.LOG`、`STAN05.LOG`、`STAN06.LOG`。如果要修改文件夹路径或要保留的文件名,请修改对应的变量值。
### 回答2:
可以使用以下批处理脚本来删除文件夹下3天前的文件,但保留名字为 STAN04.LOG, STAN05.LOG, STAN06.LOG的文件。
```
@echo off
setlocal
set "folderpath=D:\your\folder\path" // 设置文件夹路径
forfiles /p "%folderpath%" /s /m * /d -3 /c "cmd /c if @isdir==FALSE if not @fname==\"STAN04\" if not @fname==\"STAN05\" if not @fname==\"STAN06\" echo del @path"
endlocal
```
请注意将 `D:\your\folder\path` 替换为您想要操作的文件夹路径。
这个脚本使用 `forfiles` 命令在指定的文件夹及其子文件夹中查找文件,并根据日期选择删除文件。
`/p` 参数指定要搜索的文件夹路径。
`/s` 参数告诉 `forfiles` 命令在文件夹及其子文件夹中进行搜索。
`/m *` 参数匹配所有文件,即不限制文件名。
`/d -3` 参数指定只选择3天前的文件。
`/c` 参数后面跟着要执行的命令。`cmd /c` 表示在命令提示符下执行命令。
`if @isdir==FALSE` 条件用于仅选择文件。
`if not @fname==\"STAN04\"`、`if not @fname==\"STAN05\"` 和 `if not @fname==\"STAN06\"` 条件用于保留名字为 `STAN04.LOG`、`STAN05.LOG` 和 `STAN06.LOG` 的文件。
`echo del @path` 命令用于显示要删除的文件路径,可以根据需要删除 `echo` 来实际执行删除操作。
希望对你有帮助!
### 回答3:
可以使用以下的bat脚本来实现删除文件夹下3天前的文件,但是保留名字为 STAN04.LOG, STAN05.LOG, STAN06.LOG的文件:
```
@echo off
REM 设置文件夹路径
set folder=path\to\your\folder
REM 获取当前日期前3天的日期
for /f "skip=3 delims=" %%A in ('powershell Get-Date ^| Get-Date -Format "{MM/dd/yyyy}" ^| findstr [0-9]') do set date=%%A
REM 删除文件夹下3天前的文件,但保留指定的文件名
forfiles /p "%folder%" /d -%date% /c "cmd /c if not @isdir==TRUE if /I @file NEQ STAN04.LOG if /I @file NEQ STAN05.LOG if /I @file NEQ STAN06.LOG del @path"
```
请注意,你需要将"path\to\your\folder"替换为你要操作的文件夹路径。此脚本将根据当前日期的前3天日期(跳过非数字字符),删除文件夹下3天前的所有文件,除了文件名为STAN04.LOG,STAN05.LOG和STAN06.LOG的文件。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)