我有一个批处理文件,每天删除最后修改的记录。但我想创建条件,只有当最后修改日期不是每个月的第1天时才应该删除。以下是我每天用来运行批处理的代码。
@echo off
pushd "E:\Sales"
for /f "eol=: delims=" %%F in ('dir /b /a-d /o-d') do (
if()
del "%%F"
exit /b
)
先谢谢
答案 0 :(得分:1)
@echo off
pushd "E:\Sales"
for /f "eol=: delims=" %%F in ('dir /b /a-d /o-d') do (
for /f "tokens=2 delims=/" %%D in ("%%~tF") do (
if "%%D" neq "01" del "%%F"
)
exit /b
)
第二个for /f
命令处理文件日期时间%%~tF
字符串,其格式为:MM/DD/YYYY HH:MM
,并获取由/
分隔的第二个标记,即那一天。
如果您的区域设置日期格式为DD/MM/YYYY ...
,则只需按tokens=2
更改1
即可。如果日期格式包含DayOfWeek DOW MM/DD/YYY ...
,请在delims
中添加空格并相应地调整tokens
;即:"tokens=3 delims=/ "
。