获取按名称排序文件夹时最后列出的文件夹名称 - 批处理文件



请帮助我从文件夹列表中获取文件夹的名称(包含在一个文件夹中),如果文件夹按名称排列(即按字母顺序排列),则最终会出现该文件夹的名称

例如,如果名为"stack"的文件夹具有一组名为 A,B,C,D,E,F 的文件夹。然后批处理文件应该向我返回文件夹"f"的名称

我必须在批处理文件中执行此操作

也许这不是最优雅的方法。我只是按排序顺序排列文件夹名称,然后取第一项,然后中断。这样可以避免遍历整个列表。脚本应将您的文件夹作为工作目录。

@echo off
setlocal enabledelayedexpansion
for /F "tokens=* delims=" %%a in ('dir /AD /B /O-N') do (
    set lastvalue=%%a
    goto break
)
:break
echo !lastvalue!
您需要

的批处理文件行是

for /f "delims=" %%a in ('dir /ad /on stack') do set returnvalue=%%a

然后,您将显示返回值

echo last name in directory is %returnvalue%

这是使用临时文件的另一种方法:我按 revers 排序顺序显示文件夹名称并重定向到临时文件。然后我从该文件中读取一次并设置最后一个值。

(dir /AD /B /O-N >temp.txt) && 5<temp.txt ( set /p lastvalue=<&5)
echo %lastvalue%

只是为了添加选项。从命令行(或将%更改为%%以在批处理文件中使用)

@for /f "tokens=1,* delims=:" %a in ('dir /b/o-n^|findstr /n "^"^|findstr "^1:"') do @echo %b

最新更新