1

在对数据表进行备份和维护之前,我会定期尝试为 ERP 程序清理一些数据文件夹。我一直在使用 Windows 资源管理器在完整备份之前搜索无关的备份和临时文件(维护过程会在此过程中创建备份文件,但并不总是删除),但我想通过一个批处理文件以简化和加快该过程。我正在过滤以下内容:

*NGT????????????.old
*Wrk*????????????.m4t

另外,我正在使用的命令:
del /S /Q

通过资源管理器中的搜索功能,这两者都可以完美地工作。第一个在命令提示符下正常工作,但第二个没有。这一系列的?s 由ERP 软件创建为时间戳,以表明当时创建了原始副本。第二个 * 代表一个或两个字符的用户 ID,表示创建文件的用户(除了字符长度并不总是相同之外,它并不那么重要)。当我尝试使用第二个过滤器在命令提示符中进行过滤时,它不仅会抓取我想要的文件,而且还会抓取没有时间戳的原始源文件。例如,以下文件名:

文件 1) AR_AgedInvoiceReportWrk.M4T
文件 2) AR_AgedInvoiceReportWrkTB081615903027.M4T

文件 2 是唯一应该删除的文件,但它会同时删除文件 1 和文件 2。我什至尝试使用两个或三个 ?s 而不是第二个 * 只是为了看看是否会发生差异,但它没有不。

命令提示符是否无法识别?探险家的方式?我错过了什么?

4

1 回答 1

2

DIR 并且似乎其他工具匹配短文件名和长文件名。您的短文件名具有wrk作为前导字符,然后您匹配整个任意字符的赃物。

一种解决方案是使用类似的东西并通过正则表达式将DIR /b /a-d其通过管道,这将仅匹配长文件名。findstr

于 2013-09-27T16:56:46.810 回答