只有当日期创建大于时才做某事

时间:2014-05-14 10:19:34

标签: windows batch-file cmd windows-server-2008

我已经获得了这段批处理代码:

for /D %%f in (E:\images\*) do E:\jpegoptim.exe -v --strip-all "%%f\*.jpg"

我需要在' do'中添加一个条件。声明,仅对创建日期大于' 2014-01-01'。

的文件运行可执行文件。

我知道DIR /T列出了具有创建日期的文件,但是如何将其集成到我的代码中?有没有办法简单地获得%% f的日期?

1 个答案:

答案 0 :(得分:2)

%%~tx循环中使用修饰符FOR。你可以这样做:

@echo off

set $Lim=20140101

setlocal Enabledelayedexpansion

for /f "delims=" %%a in ('dir /s /b/a-d "E:\images\*.txt"') do (
 set $FileDate=%%~ta
 set $FileDate=!$FileDate:~6,4!!$FileDate:~3,2!!$FileDate:~0,2!
 if !$FileDate! Gtr %$Lim% echo E:\jpegoptim.exe -v --strip-all "%%~fa"
)

如果输出正确,请测试并移除echo