获取上周使用批处理修改过的所有文件的文件名?

时间:2014-05-02 13:34:07

标签: batch-file for-loop cmd directory

我试图获取上周在某个目录中修改过的文件的所有文件名(包含子目录)。我知道下面的脚本返回每个子目录中的最后一个修改过的文件。是否有可能做我尝试用批处理脚本做的事情?如果可能,应对以下脚本进行哪些更改?在此先感谢:)

@echo off
setlocal EnableDelayedExpansion

for /D %%G in (*) do (
  echo %%G
  cd %%G\

    for /f "delims=" %%F in ('dir /b/a-d/tw') do (
      set last=%%F
    )  

  echo !last!
  cd..
  pause   
)

2 个答案:

答案 0 :(得分:0)

/D    date          Selects files with a last modified date greater
                    than or equal to (+), or less than or equal to
                    (-), the specified date using the
                    "dd/MM/yyyy" format; or selects files with a
                    last modified date greater than or equal to (+)
                    the current date plus "dd" days, or less than or
                    equal to (-) the current date minus "dd" days. A
                    valid "dd" number of days can be any number in
                    the range of 0 - 32768.
                    "+" is taken as default sign if not specified.

查看forfiles /?。有很多示例命令。

答案 1 :(得分:0)

这可以使用Robocopy提供列表 最近的文件显示在过去7天的底部,最旧的顶部。

将文件夹变量更改为您需要检查的树。

@echo off
:: Do NOT remove /L from the robocopy line

    set "folder=d:\data"

for /f "tokens=1,2,*" %%a in ('robocopy "%folder%" "%folder%" *.* /L /s /maxage:7 /nocopy /is /njh /njs /ndl /nc /ns /ts ^|sort ') do echo %%c
pause