吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1004|回复: 12
收起左侧

[经验求助] 如何自动删除服务器上指定文件夹的文件

[复制链接]
72、 发表于 2024-3-14 09:03
30吾爱币
本帖最后由 72、 于 2024-3-14 09:06 编辑

公司阿里云服务器每天都会备份ERP软件的数据文件
每次隔一段时间就要上服务器删一遍文件,不然没过多久硬盘就满了。
就想有没有cmd命令或者软件能自动执行删除指定文件夹的一些特定文件。
不能全部删除,还要留下近几天的备份数据文件。
比如删除10天前或者5天前的文件。


服务器是windows系统

最佳答案

查看完整内容

在Windows系统中,可以通过使用批处理脚本(.bat)来实现自动删除指定文件夹中的特定文件。以下是一个示例脚本,可以删除10天前或5天前的文件: ```batch @echo off set "folder=C:\path\to\folder" :: 指定文件夹路径 set "days_to_keep=10" :: 保留的天数 pushd "%folder%" forfiles /p "%folder%" /s /m *.* /d -%days_to_keep% /c "cmd /c if @isdir==FALSE del @file" popd ``` 请注意,在上面的示例中,需 ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ya121 发表于 2024-3-14 09:03
在Windows系统中,可以通过使用批处理脚本(.bat)来实现自动删除指定文件夹中的特定文件。以下是一个示例脚本,可以删除10天前或5天前的文件:

```batch
@echo off
set "folder=C:\path\to\folder"  :: 指定文件夹路径
set "days_to_keep=10"  :: 保留的天数

pushd "%folder%"
forfiles /p "%folder%" /s /m *.* /d -%days_to_keep% /c "cmd /c if @isdir==FALSE del @file"
popd
```

请注意,在上面的示例中,需要将`C:\path\to\folder`替换为实际的文件夹路径,并根据需要更改`days_to_keep`的值来指定要保留的天数。

将上述代码保存为`.bat`文件,并在需要执行删除操作的时候运行该文件即可自动删除指定文件夹中的特定文件。

如果你需要更复杂的自动化、计划任务等功能,你可以考虑使用Windows Task Scheduler(任务计划程序)来定期运行该批处理脚本。
xxl1039 发表于 2024-3-14 09:09
1、在特定位置新建bat批处理文件。如d盘,新建autodel.bat
2、右击记事本打开autodel.bat,输入内容:forfiles /p "D:\BackupFolder" /s /m *.* /d -7 /c "cmd /c del @path"
3、在Windows搜索框中输入“任务计划程序”并打开它。
4、在右侧的操作面板中,点击“创建基本任务...”。
5、在“创建基本任务向导”中,输入任务的名称和描述,例如“删除旧备份文件”。
6、选择触发频率,例如每天、每周或根据自己的需求选择其他选项。
7、根据所选频率设置具体的触发时间和重复间隔。
8、在“操作”步骤中,选择“启动程序”。
9、点击“浏览”,找到并选择你之前保存的 DeleteOldBackups.bat 文件。
10、完成向导后,点击“完成”。
Angelee999 发表于 2024-3-14 09:13
0 0 */14 * * find [数据文件目录] -name "*.bak" -mtime +7 -exec rm {} \;
这个是每14天定时执行一个删除指令,删除文件文件的匹配格式是.bak,删除的是时间为7天之外的文件,你可以试试
这个使用的是linux系统的crontab工具
cjy317 发表于 2024-3-14 09:19
Angelee999 发表于 2024-3-14 09:13
0 0 */14 * * find [数据文件目录] -name "*.bak" -mtime +7 -exec rm {} \;
这个是每14天定时执行一个删 ...

他用的windows啊
ohouyang 发表于 2024-3-14 09:25
创建批处理脚本
创建一个名为delete_folder.bat的文本文件,并在其中编写如下内容:
@echo off
REM 设置您想要删除的文件夹路径
set "folder_path=C:\Path\To\Your\Folder"

REM 检查文件夹是否存在
if exist "%folder_path%" (
    REM 删除文件夹及其所有内容
    rd /s /q "%folder_path%"
    if errorlevel 1 (
        echo 文件夹删除失败!请检查权限或文件夹状态。
    ) else (
        echo 文件夹已成功删除。
    )
) else (
    echo 指定的文件夹不存在。
)

pause

将 C:\Path\To\Your\Folder 替换为您实际想要删除的文件夹路径。

设置定时任务

打开“任务计划程序”(通过搜索栏或控制面板进入)。
在任务计划程序库中,右键点击空白处,选择“创建基本任务...”。
输入任务名称和描述,然后点击“下一步”。
选择触发器类型(例如:每天、每周等),并配置具体执行时间,然后点击“下一步”。
在操作页面,选择“启动程序”,然后点击“下一步”。
点击“浏览”按钮,找到并选择您刚才创建的delete_folder.bat批处理文件,点击“下一步”。
根据需要设置更多条件和设置,一般情况下保持默认选项即可。
最后确认信息无误,点击“完成”。
这样就创建了一个定时任务,会在指定时间运行您的批处理脚本,从而自动删除指定的文件夹。注意确保执行此任务的用户账户拥有足够的权限来删除该文件夹。

大致就是上面的步骤
 楼主| 72、 发表于 2024-3-14 09:28
ya121 发表于 2024-3-14 09:22
在Windows系统中,可以通过使用批处理脚本(.bat)来实现自动删除指定文件夹中的特定文件。以下是一个示例 ...

哈哈哈  百度AI的吗?
今夕何兮 发表于 2024-3-14 10:42
正好可以用上
milaoshu1020 发表于 2024-3-14 11:37
也可以用vbs删除,不过你的需求不够明确,不好写脚本;
ffeiko 发表于 2024-3-14 11:52
@echo off
setlocal

rem 设置备份文件夹路径
set "backup_folder=C:\Backup"

rem 设置保留最近几天的备份文件数量
set "keep_days=10"

rem 计算要删除的文件的日期
for /f "usebackq delims=" %%a in (`robocopy "%backup_folder%" "%backup_folder%" /L /MAXAGE:%keep_days% /MINAGE:%keep_days% /BYTES /S /IS /NJH /NJS /NC /NFL /NDL /FP ^| findstr /r /i /c:"^\\.*\\.*$"`) do (
    echo 删除 %%a
    del "%%a"
)

echo 备份文件清理完成。
exit /b
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 06:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表