批处理文件 - 每个月的第一天例外

时间:2017-05-16 06:41:37

标签: batch-file batch-processing

我有一个批处理文件,每天删除最后修改的记录。但我想创建条件,只有当最后修改日期不是每个月的第1天时才应该删除。以下是我每天用来运行批处理的代码。

@echo off
pushd "E:\Sales"
for /f "eol=: delims=" %%F in ('dir /b /a-d /o-d') do (
  if()
  del "%%F"
  exit /b
)

先谢谢

1 个答案:

答案 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=/ "