Datetime 使用批处理文件根据时间对文件进行排序和删除

Datetime 使用批处理文件根据时间对文件进行排序和删除,datetime,batch-file,timer,Datetime,Batch File,Timer,为了我的研究,我们每天拍摄100张天空照片。到目前为止,我们有20000多张照片在这个文件夹中,但我们只需要在夜间拍摄的照片。有没有一种方法可以在设定的时间(比如上午9点到下午5点)之间使用批处理文件自动删除图片?我没有DOS的经验,但对于这种任务,它似乎是最有效的方法,而不是MATLAB(我更熟悉MATLAB)。任何帮助都将不胜感激 谢谢 这应该能帮到你: @echo off setlocal enabledelayedexpansion for /f %%a in ('dir /o-d /

为了我的研究,我们每天拍摄100张天空照片。到目前为止,我们有20000多张照片在这个文件夹中,但我们只需要在夜间拍摄的照片。有没有一种方法可以在设定的时间(比如上午9点到下午5点)之间使用批处理文件自动删除图片?我没有DOS的经验,但对于这种任务,它似乎是最有效的方法,而不是MATLAB(我更熟悉MATLAB)。任何帮助都将不胜感激


谢谢

这应该能帮到你:

@echo off
setlocal enabledelayedexpansion

for /f %%a in ('dir /o-d /b') do (
  for /f "tokens=1,2" %%b in ("%%~ta") do (
    set "ftime=%%c" & set "ftime=!ftime: =0!"
      if !ftime! GEQ 09:00 if !ftime! LEQ 17:00 (
         echo Timestamp: %%~ta Ok to delete %%~nxa
         echo del %%~nxa
      )
   )
)

运行并验证是否识别了正确的文件后,请删除del%%~nxa行上的echo以执行实际的删除

文件名的格式是什么?文件可以按上次修改日期等过滤,也可以按文件名格式过滤。如果文件名格式已经是一种有用的格式,则最好是文件名格式。非常感谢,非常感谢。我会让你知道它是否有效。嘿,马特,我运行了代码,但似乎什么都没有发生。我删除了echo,测试了10张日期在上午9点到下午5点之间的图片,没有一张被删除。为了清楚起见,我只是将该文本复制到一个文本文件中,并以.bat扩展名保存它,然后将该文件添加到包含图片的文件夹中,然后运行它。再次感谢你的帮助。为了澄清,所有图片都是.jpgIs。您的日期格式是月/日/年吗?我在美国,有时我忘了很多海报不是。您可能必须将
%MM%/%DD%/%yyyyy%“
切换到
%DD%/%MM%/%YYYY%”
不,我在美国,所以这是正确的。我会在研究用电脑上再试一次,而不是我的个人电脑。在之前的尝试中,如果有帮助的话,第一条回音线也不会出现。这是因为我今天有一个过滤器。如果今天没有任何文件被拿走,它就不会起作用了。我已删除过滤器,因此它将删除任何一天上午9点到下午5点之间创建的任何文件。看看这对你是否有效。