我有多个文件夹,其内部结构如下:
aaa 000 important v001 v002 v003 not_important something_else 001 important v001 v002 v003 not_important something_else 002 important v001 v002 v003 not_important something_else bbb 000 important v001 v002 v003 not_important something_else 001 important v003 not_important something_else 002 important v001 v002 v003 not_important something_else ccc 000 important v001 v002 v003 not_important something_else 001 important v001 v002 v003 v004 v005 not_important something_else 002 important v001 v002 v003 not_important something_else
其中一个文件夹称为v00?
,其中包含文件的特定版本。
现在,我要列出最新文件的所有日期。
但是,这是我的问题:
如何仅过滤掉这些文件夹的最新版本?
我尝试了这个,但是我无法使用该功能获得多层 而“ dir”命令给了我一切
"FOR /D %%d IN (*.*) DO ("
我该如何解决?
我当前的代码如下>
@echo off
setlocal
for /D %%d in (*.*) do (
echo %%d
cd %%d
for /D %%e in (*.*) do (
echo %%e
cd %%e
for /D %%f in (*.*) do (
cd %%f
echo %%f
Insert Here CD ??
for /f "tokens=*" %%1 in ('dir /b /ad /on v*') do (
set latestdir=%%1
)
echo Latest directory name=%latestdir%
cd %latestdir%\fullres
pause
cd..
)
cd..
)
cd ..
)
pause
答案 0 :(得分:1)
@echo off
setlocal enabledelayedexpansion
for /r /d %%A in (\v00*) do (
pushd "%%~A\.."
for /d %%B in (v00*) do set "subfolder=%%~B"
if not "!save!" == "!cd!" echo !cd!\!subfolder!
set "save=!cd!"
popd
)
这遍历当前目录中的所有目录
目录,并搜索\v00*
的匹配项。它会
pushd
放入找到的每个匹配目录父目录中,
然后嵌套的for
循环会搜索最后一个匹配项
v00*
的子文件夹。如果已保存当前目录
与当前目录不匹配,则匹配
目录路径将被回显。 当前目录
将被保存用于下一个循环,popd
将返回
到初始目录。