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

时间:2014-04-25 21:19:01

标签: 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..
    pause   
)

cd..
cd..

1 个答案:

答案 0 :(得分:1)

像这样工作:

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

@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..