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

时间:2014-01-08 13:41:21

标签: batch-file directory filenames

如果文件夹是按名称排列的(即按字母顺序排列),请帮我从文件夹列表(包含在一个文件夹中)中获取文件夹的名称(

例如,如果名为“stack”的文件夹具有一组名为a,b,c,d,e,f的文件夹。然后批处理文件应该返回文件夹“f”的名称

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

4 个答案:

答案 0 :(得分:0)

您需要的批处理文件行

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

然后你会显示返回值

echo last name in directory is %returnvalue%

答案 1 :(得分:0)

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

@echo off
setlocal enabledelayedexpansion

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

答案 2 :(得分:0)

这是使用临时文件的另一种方式: 我以反向排序的方式命名文件夹名称并重定向到临时文件。然后我从该文件中读取一次并设置最后一个值。

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

答案 3 :(得分:0)

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

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