定期在执行备份和对数据表执行维护之前,我正试图清理ERP程序的一些数据文件夹。我一直在使用Windows资源管理器在完全备份之前搜索无关的备份和临时文件(维护过程在过程中创建的备份文件并不总是被删除),但是我想直接运行它批处理文件可以简化并加快处理过程。我过滤下列要求:。命令提示符通配符文件删除错误地匹配
* NGT ????????????老
* WRK * ???????????? M4T
另外,我使用的命令:
DEL/S/Q
这些都完美地工作,但内部资源管理器的搜索功能。第一个在命令提示符下正常工作,但第二个没有。这个系列由ERP软件创建,作为时间戳,以指示当时创建的原件的副本。第二个*表示一个或两个字符的用户标识,表示创建该文件的用户(除了字符长度不一定相同外,并不重要)。当我尝试使用第二个过滤器在命令提示符中进行过滤时,它不仅抓取我想要的文件,而且还抓取原始源文件,其中不对有时间戳。例如,以下文件名:
文件1)AR_AgedInvoiceReportWrk.M4T
文件2)AR_AgedInvoiceReportWrkTB081615903027.M4T
文件2是应该被删除的只有一个,但它会同时删除文件1和文件2.我甚至尝试过使用两个或三个而不是第二个,只是为了看看是否会出现差异,但事实并非如此。
命令提示符不能识别? Explorer的方式呢?我错过了什么?
“命令提示符不能识别Explorer的方式吗?”简短的回答是否定的。首先阅读:[通配符如何在MS-DOS中工作?](http://blogs.msdn.com/b/oldnewthing/archive/2007/12/17/6785519.aspx)并记住Cmd.exe模式匹配是向后兼容的。 –
忘了提及这个:[为什么FindFirstFile找到短名称?](http://blogs.msdn.com/b/oldnewthing/archive/2005/07/20/440918.aspx)。我可以建议的最佳解决方法是使用PowerShell,而不受这些向后兼容性怪异的影响。 –