Windows 如何批量获取上次修改文件的上一个(第n个)
假设在一个文件夹中,我有5个文件a B C D E。我需要找到最后修改的文件,它是D和上一个文件C,或者可能是上一个文件N。怎么做 我最后一次修改: 但不是第n个更通用的。Windows 如何批量获取上次修改文件的上一个(第n个),windows,batch-file,dos,command-prompt,Windows,Batch File,Dos,Command Prompt,假设在一个文件夹中,我有5个文件a B C D E。我需要找到最后修改的文件,它是D和上一个文件C,或者可能是上一个文件N。怎么做 我最后一次修改: 但不是第n个更通用的。@ECHO OFF @echo off set "root_dir=c:\somewhere" pushd "%root_dir%" set "bl1=" set "bl2=" setlocal enableDelayedExpansion for /f "tokens=* delims=" %%# in ('dir /b
@ECHO OFF
@echo off
set "root_dir=c:\somewhere"
pushd "%root_dir%"
set "bl1="
set "bl2="
setlocal enableDelayedExpansion
for /f "tokens=* delims=" %%# in ('dir /b /a:-d /o:d') do (
set "bl2=!bl1!"
set "bl1=%%#"
)
echo %bl2%
endlocal
SETLOCAL
设置“sourcedir=U:\sourcedir”
设置/a跳过长度=%1
如果%skiplength%==0(设置“skiplength=”)否则(设置“skiplength=skip=%skiplength%”)
对于/f“%skiplength%delims=“%%a IN(
'dir/b/a-d/o-d”%sourcedir%\*“'
)完成回声%%a&转到完成
:完成
后藤:EOF
其中,提供的第一个参数是第n个(0=最小值,1=第二个最新值)等
它只是根据输入的数字将skiplength
构建为nothing或skip=$required
,然后执行一个目录列表,不包括目录名(/a-d)并以相反的日期顺序(/o-d);跳过所需数量的条目,生成一行输出,并退出循环
您可以选择
sourcedir
。当然,如果需要,您可以将%%a
分配给变量。虽然此代码块可能会回答此问题,但您始终应该解释为什么会这样做。