Batch file 批处理文件以删除子文件夹集中最旧的文件

Batch file 批处理文件以删除子文件夹集中最旧的文件,batch-file,Batch File,我一直在尝试修改巴斯文件,如下面的链接所示,以在一组子文件夹中搜索最旧的文件并将其删除 有人能帮忙吗 进一步资料 @echo off cd c:\Test for /F "delims=" %%a in ('dir /S /B /A:-D /O:D /T:W') do ( del /Q /F "%%~dpfna" goto continue ) :continue ?有些混乱-您想移动文件还是删除它 如果要移动文件,需要 move "%%a" "C:\Another\Locati

我一直在尝试修改巴斯文件,如下面的链接所示,以在一组子文件夹中搜索最旧的文件并将其删除

有人能帮忙吗

进一步资料

@echo off
cd c:\Test
for /F "delims=" %%a in ('dir /S /B /A:-D /O:D /T:W') do (
   del /Q /F "%%~dpfna"
   goto continue
)
:continue

有些混乱-您想移动文件还是删除它

如果要移动文件,需要

move "%%a" "C:\Another\Location\%%a"
前提是目标目录存在

如果目录
c:other\Location
存在,它将执行相同的操作

如果
c:\other
不存在,
MOVE
将失败,如果目录
c:other\Location
存在,但没有目录
c:other\Location
,则将文件移动到名为
c:other\Location
的文件中

最安全的可能是

md "C:\another\location" 2>nul
move "%%a" "C:\Another\Location\%%a"

其中,
md
命令将创建目录(可以理解,在
删除最早的文件
脚本中不会这样做。
2>nul
会抑制错误消息(例如“目录已存在”)

是否只删除文件夹集中所有文件中最旧的一个文件,还是每个文件夹中删除一个文件,每个文件夹中最旧的文件?感谢您的帮助,很遗憾,这不起作用。它似乎在按字母顺序排列的第一个文件夹中找到最旧的文件,然后删除该文件,如果再次运行,则删除该文件将删除同一文件夹中的下一个最旧文件。当该文件夹为空时,它将前进到下一个按字母顺序排列的文件夹,依此类推。这与我要查找的不完全相同。因此,是否要删除每个目录中最旧的文件?
move "%%a" C:\Another\Location\
move "%%a" C:\Another\Location
md "C:\another\location" 2>nul
move "%%a" "C:\Another\Location\%%a"