在一个文件夹中说我有5个文件A B C D E.我需要找到最后修改的是D和前一个C或者可能是第n个。怎么做?
我上次修改了:http://blogs.msdn.com/b/oldnewthing/archive/2012/08/01/10334557.aspx
但不是更通用的第n个。
答案 0 :(得分:2)
@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
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET /a skiplength=%1
IF %skiplength%==0 (SET "skiplength=") ELSE (SET "skiplength=skip=%skiplength%")
FOR /f "%skiplength%delims=" %%a IN (
'dir /b /a-d /o-d "%sourcedir%\*" '
) DO ECHO %%a&GOTO done
:done
GOTO :EOF
提供的第一个参数是第n个参数(0 =最小,1 =第二个最新)等。
它只是将skiplength
构建为 nothing 或skip=$required
,具体取决于输入的数字,然后执行目录列表,不包括目录名(/ ad)和反向日期顺序(/ OD);跳过所需的条目数,产生一行输出和jum out of the loop。
sourcedir
的选择取决于您。当然,如果您愿意,可以将%%a
分配给变量。