我有一个目录,那里有大约1000个文件。 我想获得自7天以来最后更新的文件名?并将此文件名写入另一个文件。 我正在使用Windows 2012,我希望使用批处理脚本。我怎么能这样做?
更新: 我试过了
@echo off
setlocal enableextensions disabledelayedexpansion
set "folder=c:\some\where"
( for /f "tokens=*" %%a in ('
robocopy "%folder%" "%folder%" * /l /nocopy /is /maxage:7 /njh /njs /nc /ns /ndl
') do echo(%%a
) > outputFile.txt
但是,我收到此错误:
ERROR : No Destination Directory Specified.
Simple Usage :: ROBOCOPY source destination /MIR
source :: Source Directory (drive:\path or \\server\share\path).
destination :: Destination Dir (drive:\path or \\server\share\path).
/MIR :: Mirror a complete directory tree.
For more usage information run ROBOCOPY /?
**** / MIR可以删除文件并复制它们!
答案 0 :(得分:2)
@echo off
setlocal enableextensions disabledelayedexpansion
set "folder=c:\some\where"
( for /f "tokens=*" %%a in ('
robocopy "%folder%" "%folder%" * /l /nocopy /is /maxage:7 /njh /njs /nc /ns /ndl
') do echo(%%a
) > outputFile.txt
这使用robocopy
命令检索所需文件的列表。它只列出/l
,而不复制任何/nocopy
,所有文件,包括那些被视为同一文件/is
的文件,最大年龄为7天/maxage:7
,没有标题/njh
,摘要/njs
,文件类/nc
,尺寸/ns
或目录列表/ndl
。
该命令的输出将包含一些使用for
循环删除的空白列。