Board logo

标题: [文件操作] [已解决]批处理如何切换到最新时间的目录里? [打印本页]

作者: wpNature    时间: 2011-7-12 16:14     标题: [已解决]批处理如何切换到最新时间的目录里?

本帖最后由 wpNature 于 2011-7-13 08:54 编辑

在D:\DOS目录的下面,有如下的目录。
├─20110712083585
├─20110712120133
└─20110712160345
目录名的规则是8位日期和6位时间,使用CD d:\DOS\20110712*的命令,进入的是目录1(20110712083585)。如果我想进入最新时间的目录3(20110712160345),该怎么写命令?
作者: CrLf    时间: 2011-7-12 16:31

  1. for /d %%a in (d:\dos\*) do set last=%%a
  2. cd /d d:\dos\%last%
复制代码

作者: mxxcgzxxx    时间: 2011-7-12 17:40

本帖最后由 mxxcgzxxx 于 2011-7-12 17:42 编辑

换个思路试试
  1. cd /d d:\dos
  2. for /f "delims=" %%1 in ('dir /on /ad /b') do set "a=%%1"
  3. cd %a%
复制代码

作者: bluewing009    时间: 2011-7-13 00:08

或者说dir /o-d ,不过还是直接当成数字找最大值最简单
作者: wpNature    时间: 2011-7-13 08:57

本帖最后由 wpNature 于 2011-7-13 09:37 编辑

谢谢版主和热心朋友的帮助,使得此问题能够得到解决。
看了批处理代码,又一次让我感到for语句的强大。
  1. for /d %%a in (d:\dos\*) do set last=%%a
  2. cd /d d:\dos\%last%
复制代码
这段代码,恰好使用到了for /d匹配第一层目录的特点。
  1. cd /d d:\dos
  2. for /f "delims=" %%1 in ('dir /on /ad /b') do set "a=%%1"
  3. cd %a%
复制代码
这段代码,for /f  "delims="  结合  dir /on /ad /b,通用性更强了,内心喜悦啊。
  1. dir /O-D
复制代码
这个也很好,利用时间属性排序。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2