setlocal
set Folder=C:\test\
set FileMask=*.*
set OldestFile=
for /f "delims=" %%a in ('dir /b /o:d "%Folder%\%FileMask%" 2^>NUL') do (
set OldestFile=%%a
goto Break
)
:Break
if "%OldestFile%"=="" (
echo No files found in '%Folder%' matching '%FileMask%'!
) else (
echo del "%Folder%\%OldestFile%"
)
pause
这里我删除了最旧的文件(文件夹中的文件或文件夹中的目录)。如何从文件夹和子文件夹中的文件中删除最旧的文件?必须检查子文件夹。
答案 0 :(得分:0)
@echo off
setlocal enableextensions disabledelayedexpansion
set "folder=C:\test\"
set "fileMask=*.*"
set "oldestFile="
for %%f in ("%folder%\.") do for /f "tokens=2,*" %%a in ('
robocopy "%%~ff" "%%~ff" %fileMask% /njh /njs /nc /ns /l /is /ndl /ts /s
^| 2^>nul sort
^| find ":"
') do set "oldestFile=%%b" & goto :done
:done
echo "%oldestFile%"
这使用robocopy
列出/l
具有yyyy/mm/dd hh:nn:ss
格式的时间戳的文件,对列表进行排序,使得最旧的文件是第一个,并且一旦第一个文件的信息被记录检索,显示它。