Batch file 使用批处理在一组目录中的每个目录中查找某个文件?

Batch file 使用批处理在一组目录中的每个目录中查找某个文件?,batch-file,for-loop,cmd,Batch File,For Loop,Cmd,这是我的剧本。在本例中,我试图获取目录的最后一个文件(按字母顺序排序)。每当我运行它时,第6个文件夹中的最后一个文件就会在每次迭代中给出。这个脚本有什么问题 @echo off cd folder1\folder2 for /D %%G in (*) do ( echo %%G cd %%G for /f %%F in ('/b/a-d/on') do ( set last=%%F ) echo %last% cd..

这是我的剧本。在本例中,我试图获取目录的最后一个文件(按字母顺序排序)。每当我运行它时,第6个文件夹中的最后一个文件就会在每次迭代中给出。这个脚本有什么问题

@echo off
cd folder1\folder2

for /D %%G in (*) do (
    echo %%G
    cd %%G

    for /f %%F in ('/b/a-d/on') do (
        set last=%%F
    )   
    echo %last%
    cd..
    pause   
)

cd..
cd..
像这样它工作:

将其放入您的工作目录并运行它

@echo off
setlocal EnableDelayedExpansion
for /d %%a in (*) do (
for /f "delims=" %%F in ('dir /s/b/a-d/on "%%a"') do set $last="%%~nF%%~xF"
echo last of %%a is !$last!
)

echo Done...
pause
编辑:

要使代码正常工作,请执行以下操作:

@echo off
setlocal EnableDelayedExpansion

for /D %%G in (*) do (
echo %%G
cd %%G\

for /f "delims=" %%F in ('dir/b/a-d/on') do (
    set last=%%F
)   
echo !last!
cd..
pause   
)

cd..
cd..

成功了!顺便说一句,你能解释一下为什么我的脚本不能工作吗?好的,检查我的编辑,你有使用你的代码的解决方案。工作。。谢谢!请把问题按回答的那样提出来。