帮我编写一个删除文件夹下7天前的文件,但是保留名字为test的文件的bat脚本
时间: 2023-09-15 22:05:15 浏览: 187
linux 查看路径下所有文件名称.txt
### 回答1:
您好,下面是删除文件夹下 7 天前的文件,但保留名字为 test 的文件的批处理脚本:
```
@echo off
rem 定义文件夹路径变量
set folder_path=D:\Test
rem 切换到文件夹
cd /d %folder_path%
rem 删除文件夹下 7 天前的文件,但保留名字为 test 的文件
forfiles -p %folder_path% -s -m *.* -d -7 -c "cmd /c if not @fname=='test' del @path"
echo 删除完毕
pause
```
请注意,上面的脚本假定文件夹路径为 `D:\Test`,如果需要更改文件夹路径,请修改 `set folder_path=D:\Test` 中的路径。
如果您需要更多帮助,请告诉我。
### 回答2:
可以使用以下的bat脚本来实现删除文件夹下7天前的文件,但是保留名字为test的文件:
```bat
@echo off
set folderPath=C:\path\to\your\folder // 替换为你的文件夹路径
set keepFileName=test
forfiles /p "%folderPath%" /s /m *.* /d -7 /c "cmd /c if @isdir==FALSE del @path && if @fname==%keepFileName% echo %keepFileName% exist && pause"
```
在上面的脚本中,将 "C:\path\to\your\folder" 替换为你需要删除文件的文件夹路径。脚本使用了`forfiles`命令来扫描文件夹下的文件,`/p`参数指定了要扫描的文件夹路径,`/s`参数表示递归查找子文件夹,`/m`参数指定了匹配的文件名,`/d -7`参数表示只选择7天前的文件。
删除操作通过执行 `del @path` 来实现。但是在删除之前,脚本还会判断文件名是否与`%keepFileName%`相同,如果相同则不会删除,这样就可以保留名为`test`的文件。
最后的 `echo %keepFileName% exist && pause` 是为了显示名称为`test`的文件是否存在,并暂停脚本以方便查看结果。如果不需要显示可删除此行。
### 回答3:
可以使用以下的批处理脚本来删除文件夹下7天前的文件,但保留名字为test的文件:
```
@echo off
setlocal
set "folderPath=C:\目标文件夹的路径"
forfiles /p %folderPath% /s /m *.* /c "cmd /c if /I @isdir==FALSE if @fdate
```
阅读全文