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

[其他] 批处理dir命令遍历文件怎样按顺序显示?


假设一个文件夹中有 1.txt - 10.txt 这样十个文本文档
那么在CMD里cd进入该文件夹后,执行
  1. dir/b/on
复制代码
的话,可以看到结果
  1. 1.txt
  2. 10.txt
  3. 2.txt
  4. 3.txt
  5. 4.txt
  6. 5.txt
  7. 6.txt
  8. 7.txt
  9. 8.txt
  10. 9.txt
复制代码
可以看到 10.txt 排在第二位,这不符合人类的习惯,要怎么样才能让遍历出来的 10.txt 排在末尾呢?

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b /on *.txt') do (
  3. set str=%%~ni
  4. if  "!str:~1,1!"=="" echo !str!%%~xi
  5. )
  6. for /f "delims=" %%i in ('dir /b /on *.txt') do (
  7. set str=%%~ni
  8. if not "!str:~1,1!"=="" echo !str!%%~xi
  9. )
  10. pause
复制代码

TOP

试试看吧:
有临时文件(%temp%\temp.txt)
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. del /q %temp%\temp.txt
  4. for /f %%i in ('dir/b/on') do (
  5. set /p=%%i <nul>>%temp%\temp.txt
  6. )
  7. (set /p str=)<%temp%\temp.txt
  8. for %%b in (%str%) do (
  9.     set str=0000000000%%b
  10.     set .!str:~-10! !random!=%%b
  11. )
  12. for /f "tokens=2 delims==" %%b in ('set .') do echo %%b
  13. pause
复制代码

TOP

回复 5# HAT


    或许这个对你有帮助
http://www.bathome.net/thread-13520-1-2.html
莫求昨天无悔,但愿今日无愧。

TOP

回复 14# QIAOXINGXING
不要改文件名

TOP

把文件名 改成 01、02、03 ....................

TOP

sort 命令还真没用过,不知道要怎么和 dir 结合起来,用通道?
  1. sort | dir/b
复制代码
刚刚试过,这样好像不行,怎么用?

TOP

补位再排序(很适合批处理),或者借鉴编程语言的排序思路

TOP

曾经遇到类似问题,忘记当时怎么搞的了。
  1. C:\>sort F:\雅尼\1.txt  /+5
  2. 2401
  3. 101
  4. 26
  5. 21
  6. 13
  7. 10
  8. 5
  9. 2
  10. 1
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

曾经遇到类似问题,忘记当时怎么搞的了。
  1. C:\>sort F:\雅尼\1.txt  /+5
  2. 2401
  3. 101
  4. 26
  5. 21
  6. 13
  7. 10
  8. 5
  9. 2
  10. 1
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

本帖最后由 applba 于 2011-10-9 22:21 编辑

就是个排序的问题,要花点心思,论坛还是有很多数字排序的文章……

TOP

回复 4# guaiwu
这位朋友,你的代码不是跟我的提问时用的代码一样的嘛……

TOP

本帖最后由 MantisLin 于 2011-10-9 21:11 编辑

回复 6# wc726842270
好吧,就算你说的对吧,但批处理之家不是讨论哲学用的,还是来共同讨论解决办法吧。

TOP

LZ似乎用自已的思维来认知世界啊,个人的想法不要和集体混作一谈。如果真的有兴趣,就用你自已的能力让它改变。(呵呵,话可能过了点)
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

回复 4# guaiwu


你发帖之前有做过测试吗?
c:\Test>dir /b /o:n *.txt
1.txt
10.txt
2.txt

TOP

返回列表