我正在尝试创建一个批处理文件,它应该每天运行一次,它应该删除除最新版本之外的所有备份文件,比如每种类型中的两个。所以我有一些文件,比如:
等。
所以我的脚本现在看起来如下
@ECHO off
SET frequency=%*
for %%x in (%frequency%) do (
for /f "*-%%x*" %%a in ('dir /ad /b /o-d^|more +2') do echo @file
)但是我得到了错误*-%x*" was unexpected at this time.
脚本应该实现的是,一旦它每天运行,我应该有每种类型的最新的2个备份文件(每天,每小时)。现在我只是想打印那些需要保存的文件。
所以留给我的是
发布于 2018-11-13 14:41:06
我不知道你想用这个频率达到什么目的,但我会集中讨论你实际上想要达到的目标:
for /F "skip=2 eol=: delims=" %%i in ('dir /b /o-d *DAILY*') do echo "%%i"
for /F "skip=2 eol=: delims=" %%i in ('dir /b /o-d *HOURLY*') do echo "%%i"因此,我们按日期进行反向排序,然后跳过前两个文件(是最新的)并删除其余文件,我们只对每种类型运行两个单独的循环,每小时和每天。它可以合并到单个for循环中,但我认为这很简单。
显然,一旦你确认echo做了你想做的事情,就用del代替它。
https://stackoverflow.com/questions/53283237
复制相似问题