[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
dir /od 先按时间排列,时间完全相同的部分则按名称排列
hanyeguxing 发表于 2011-5-17 20:56

可是这也解释不通楼主附图的前十行呀?

TOP

dir /od 先按时间排列,时间完全相同的部分则按名称排列
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

哦 那dir的规律是否也可以通过多次试验来推导出
SZDLite Security Lab

TOP

本帖最后由 zm900612 于 2011-5-17 20:36 编辑
看来 explorer.exe和dir的排序方式有所不同 或许explorer更为精确
dir有误差的问题还没解决 而namejm的测试结果差别更大 更是匪夷所思
michael8111 发表于 2011-5-17 20:09

explorer对待时间一样的文件,似乎是名称为依据
  1. @echo off
  2. for /l %%i in (10,-1,1) do cd.>@a%%i.txt
  3. for /l %%i in (1,1,10) do cd.>@b%%i.txt
  4. pause
复制代码
分别用升序和降序生成的文件,在explorer中的排列次序是相同的

TOP

21# mxxcgzxxx


你应该在命令提示符下输入:
  1. dir /a-d /b /od *.txt
复制代码
这样的测试结果 和批处理完全相同
在cmd和批处理中的命令应该完全相同 才能比较结果
SZDLite Security Lab

TOP

我又试了一次更有趣了,我用cmd窗口下输入 DIR/od 结果和用批处理的又不一样了,更乱了
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

看来 explorer.exe和dir的排序方式有所不同 或许explorer更为精确
dir有误差的问题还没解决 而namejm的测试结果差别更大 更是匪夷所思

TOP

是我弄错了,将分看成秒了。
第一个文件19:51.04
第一万个文件19:51.38
用资源管理器查看修改时间排序10000个文件无错。

但用dir /a-d /b /od *.txt 查看顺序就是有个别会乱
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

16# michael8111


这点很难判断了..
或许根据磁盘的文件映射表也不一定。

TOP

15# mxxcgzxxx


这样似乎也不对。。。
8楼的代码有ping -n 1 127.1>nul
但是这句代码的延时时间估计也只有半秒多,所以dir还不是以秒为单位,而是比秒更短的单位

TOP

14# zm900612


可以用for把第二个文件名提取出来,就转换大小写了。
不过,dir既然无法精确判断时间,那么当dir判断这两个文件的创建时间“相同”时,dir是根据什么规律“固定”这300个文件的顺序?

TOP

那就是说创建文件的速度太快,而系统最小只能识别到秒。必须给个延时让创建的时间有秒级上的区别才能正确排序!
这样理解对不!
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

忽然发现fc Tmp1 Tmp2的时候,回显中的Tmp1是按照原文件名的大小写来显示,而Tmp2则被自动转为大写,看来这一特性很适合将长字符串的小写字母转大写呀

TOP

本帖最后由 mxxcgzxxx 于 2011-5-17 19:54 编辑
10# mxxcgzxxx


文件其实已经创建了,只是explorer刷新不够快而已,这很容易证明的,把文件数改成1000000,然后在没数完的时候刷新一下看看就知道了
zm900612 发表于 2011-5-17 19:43


哦,那是我对CMD的理解还不到位
试了一下10000次的,确实是早已创建文件,但有趣的是我的显示好多秒才显完10000,而10000个文还是在同一秒里创建的,而我刷新时也是出现3000、8000、10000几个层次出现文件,这就有趣了!是什么原因?
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

10# mxxcgzxxx


文件其实已经创建了,只是explorer刷新不够快而已,这很容易证明的,把文件数改成1000000,然后在没数完的时候刷新一下看看就知道了

TOP

返回列表