删除用户配置文件(窗口 10)中的特定应用程序数据子文件夹文件



我需要一些关于我的计划的建议,以创建一个脚本文件来删除某些文件(日志文件(在AppData子文件夹中。 日志每天自动生成并保存在其 AppData 文件夹中

我的计划是:

只有删除日志
  1. 文件夹内的日志文件,即年龄超过10天,并保留文件夹中的新日志。

我的问题是,在每个客户上生成的日志文件夹之前有一些文件夹。这里是使用该应用程序的 2 个示例客户的示例。粗体子文件夹由系统自动生成文件夹,在每个用户上,它会创建一个随机的子文件夹名称,最后一个文件夹日志除外。我要创建要删除的脚本的日志文件位于 Logs 文件夹中。

C:\Users\zulhadi\AppData\Local\Apps\2.0\TOHH10RY.RPR\1TK3RWZA.7LL\tmov..tion_c53c7abfec4c3d4d_0001.000c_3bf64a70373000ba\日志

C:\Users\ainul\AppData\Local\Apps\2.0\ALR6MXVO.1Q5\EXHY50X4.TDT\tmov..tion_c53c7abfec4c3d4d_0001.000c_3bf64a70373000ba\日志

我的问题是:

任何想法,如果情况如下所述,我如何创建一个脚本来删除 logs 文件夹中的日志文件。我不是一个非常计算机背景,也不是很熟悉脚本,但确实在互联网上看到了一些关于在 windows 10 中删除文件夹的基本脚本的视频/教程。

@ECHO OFF
SETLOCAL
rem The following setting for the source directory is a name
rem that I use for testing and deliberately includes spaces to make sure
rem that the process works using such names. These will need to be changed to suit your situation.
SET "sourcedir=u:your files"
FOR /d /r "%sourcedir%" %%b IN (*) DO IF /i "%%~nxb"=="logs" (
rem for each logs directory found, get a list of the .log files
rem sorted in reverse-date order. Skip the first 10 (newest) and delete the rest
FOR /f "skip=10delims=" %%e IN ('dir /b /a-d /o-d "%%b*.log" 2^>nul') DO ECHO DEL "%%b%%e"
)
GOTO :EOF

在应用于实际数据之前,请始终根据测试目录进行验证。

所需的 DEL 命令仅用于测试目的ECHO验证命令正确后,将ECHO DEL更改为DEL以实际删除文件。

从所选sourcedir开始执行目录名的递归列表(请参阅文档提示中的for /?),并仅选择"叶名"(完整目录名的最后一个元素)为logs的目录名。找到的完整目录名在%%b中。

对于每个这样的目录名,使用dir生成仅名称 (/b) 和无目录名 (/a-d) 按反向日期 (/o-d) 的顺序执行*.log文件的目录列表 - 请参阅文档提示中的dir/?

我们需要dir报告的全名,因此delims设置为,我们需要跳过报告的前 10 行,因为我们希望保留最新的 10 个文件,即报告按反向日期顺序排序时返回的前 10 行。

如果目录中没有匹配的文件名,2^>nul将禁止显示dir生成的错误报告。 插入符号用作"转义"字符,以告诉cmd>重定向器构成dir命令的一部分,而不是for

最新更新