我是批处理编程的新手,但是我在这里找到了一些我尝试修改的优秀脚本。我需要在目录中修改的最后一个文件的信息。下面的脚本给我一个文件,其中包含有关文件名和修改时间的信息。它也搜索子目录,但似乎卡在子目录中而不是在父目录中找到较新的文件。我不确定会出现什么问题(因为我只是部分理解代码)。你们聪明人在这里有什么建议吗?
提前致谢!
@echo off
setlocal
set srcDir=C:\Test
set lastmod=
pushd "%srcDir%"
for /f "tokens=*" %%a in ('dir *. * /b /od /s /a-d 2^>NUL') do set lastmod=%%a
if "%lastmod%"=="" echo Could not locate files.&goto :eof
for /d %%a in ("%lastmod%") do echo "%lastmod%", Modified date: %%~ta>"C:\Test\Details.txt"
答案 0 :(得分:1)
这使用了robocopy,所以它只适用于Windows Vista及更高版本。要使其在XP上运行,您需要从以后的操作系统或资源工具包中获取robocopy
的副本。
不会真正进行复制操作,但它将允许检索具有足够文件标记的递归文件列表,该文件标记可以排序以查找最新文件。
@echo off
setlocal enableextensions disabledelayedexpansion
set "folder=%cd%"
for /f "tokens=2,*" %%a in (
'robocopy "%folder%" "%folder%" "*" /s /is /nocopy /nc /ns /ts /fp /np /ndl /njh /njs /xjd /r:0 /w:0 /l ^| sort /r '
) do ( set "latest=%%b" & goto :done )
:done
for %%f in ("%latest%") do echo(%%~tf %%~ff