中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-06 18:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何获取目录下面目录名称最大的目录? 查看 710 回复 6
楼 主 如何获取目录下面目录名称最大的目录? 发表于 2007-12-04 16:37 ·  中国 广东 广州 天河区 电信
初级用户
积分 36
发帖 15
注册 2007-11-23 17:11
18年会员
UID 103536
性别 男
状态 离线
一个目录下面有20070101...20071231这样以日期命名的目录,我要取得名称最大的,也就是20071231这个目录的名称,该怎么取呢?
2 发表于 2007-12-04 18:09 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
@echo off
for /f "delims=" %%a in ('dir /ad/b/s/on ') do set Maxdir=%%a
echo ---^>%Maxdir%
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
huahua0919 +2 2007-12-04 18:24
3 发表于 2007-12-04 18:24 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
斑竹的精辟
4 发表于 2007-12-04 18:35 ·  中国 广东 广州 天河区 电信
初级用户
积分 36
发帖 15
注册 2007-11-23 17:11
18年会员
UID 103536
性别 男
状态 离线
多谢了,回去好好研究一下!
5 发表于 2007-12-06 15:54 ·  中国 广东 广州 天河区 电信
初级用户
积分 36
发帖 15
注册 2007-11-23 17:11
18年会员
UID 103536
性别 男
状态 离线
我的目录情况是这样的,根目录下面有一些以4开头的文件夹,如4401,4402等等,每个下面都有20070101,...,20071231这样的目录,
我的命令如下:
@echo off

for /d %%D in (4*) do (

for /f "delims=" %%a in ('dir %%D /ad/b/on ') do set Maxdir=%%a
echo ---^>%Maxdir%

)

但始终无法显示Maxdir的内容,请问是怎么回事呢?
我的批处理程序是在根目录中执行的。


后来发现,如果再执行一次该批处理程序,就能取到值了,这是什么原因呢?会不会是什么变量延迟的关系呢?

[ Last edited by lvjing79 on 2007-12-6 at 04:28 PM ]
6 发表于 2007-12-06 18:46 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
的确是变量延迟的问题。

@echo off
Setlocal EnableDelayedExpansion

for /d %%D in (4*) do (

for /f "delims=" %%a in ('dir %%D /ad/b/on ') do set Maxdir=%%a
echo ---^>!Maxdir!

)
7 发表于 2007-12-06 21:06 ·  中国 广东 广州 电信
初级用户
积分 36
发帖 15
注册 2007-11-23 17:11
18年会员
UID 103536
性别 男
状态 离线
多谢指点!
论坛跳转: