[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 zm900612 于 2011-5-17 19:21 编辑

复杂,占位思考

虽说是同一秒内创建,但是它的排序总应该遵循什么规律吧,要不然两次dir的结果将是不同的

TOP

而且,这个顺序似乎在创建时就注定了的
  1. @echo off
  2. for /l %%i in (1,1,300) do cd.>%%i.txt
  3. dir /a-d /b /od *.txt>tmp1
  4. dir /a-d /b /od *.txt>tmp2
  5. fc tmp1 tmp2
  6. pause
复制代码
  1. @echo off
  2. for /l %%i in (1,1,300) do cd.>%%i.txt
  3. dir /a-d /b /od *.txt>tmp1
  4. for /l %%i in (1,1,300) do cd.>%%i.txt
  5. dir /a-d /b /od *.txt>tmp2
  6. fc tmp1 tmp2
  7. pause
复制代码

TOP

6# michael8111

两次dir中的txt是同一批的吗?我用5楼的代码试验,同批次的没有区别,不同批的则存在区别

TOP

10# mxxcgzxxx


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

TOP

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

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

dir /od 先按时间排列,时间完全相同的部分则按名称排列
hanyeguxing 发表于 2011-5-17 20:56

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

TOP

28# Hello123World


同样的代码在我机子上的运行结果仍非顺序,要不老兄试试逆序生成文本,再dir?

TOP

30# Hello123World


看来系统之间的差别很大呀,在我机子上,虽然有部分乱序,但总体排序还是按照生成的时间先后排列,也就是说,顺序生成就基本上按顺序排列,逆序生成就基本是按逆序排列,我是盗版旗舰win7。

TOP

本帖最后由 zm900612 于 2011-5-18 21:02 编辑

我觉得最好申明一下磁盘格式,我当时的测试盘是ntfs的,不知道楼上几位是不是
反正我感觉要么和mft有关,要么和簇有关

TOP

刚到别人机子上实验了下,貌似18楼当时说对了,应该确实和文件映射有关,ntfs格式的分区下出现少量乱序,fat32下则严格按照先后顺序排列,看来以后碰到这种问题要小心了。

TOP

U盘另算,那个和硬盘不一样

TOP

45# Batcher


!!磁盘缓存...

TOP

46# zm900612
已经试验证实文件逻辑存储顺序与文件系统有关
对一个磁盘分区先后格式化为NTFS、FAT32、exFAT三种FS格式
拷入以下脚本文件反复测试文件逻辑存储的偏移
结果发现在同一台PC上
NTFS总是具有明显的 ...
qzwqzw 发表于 2011-5-20 10:56

看来有结论了,嘿嘿

TOP

返回列表