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

[文本处理] XP下批处理怎样把文件名顺序排列输出?

比如jpg,bmp图片,文件名有的含数字,有的不含数字,如何顺序排列并输出文件名

  1. @if(0)==(0) echo off&setlocal enabledelayedexpansion
  2. @for /f "delims=" %%i in ('dir /b/a-d/on "*.jpg" "*.png" "*.bmp"') do (
  3.     @for /f "delims=" %%j in ('echo %%i^|cscript -nologo -e:jscript "%~f0"') do (
  4.     set str=00000000%%j&set str=!str:~-8!
  5.     )
  6. echo !str!-%%i>>sort.txt
  7. )
  8. pause & exit /b
  9. @end
  10. WSH.echo(WScript.StdIn.ReadAll().replace(/^[^0-9.]+([0-9]+)/g, '$1').replace(/^[^0-9.]+/g, '99999999:').match(/^[0-9]+/g).join('\r\n'))
复制代码
  1. @echo off&@CD /D "%~dp0"
  2. for /f "tokens=2* delims=-" %%i in ('type sort.txt^|sort /+1') do (
  3. echo %%i
  4. )
  5. pause
复制代码
只会分开弄,第一次获取文件名补0和加9后输出TXT,第二次读取TXT进行排列,
谁知道怎么合并?不输出TXT
1

评分人数

TOP

回复 5# 猪科技


4楼说的是这个 sort.exe 第三方命令行工具
http://bcn.bathome.net/s/tool/index.html?key=sort
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# 猪科技


    linux 下的 sort ,支持按数字排序
    我用的msys2

TOP

排序是一个复杂的问题,程序一般是按字符来的。通常有按字母和数字顺序排序的说法。

TOP

谢谢,也就是说,100,里面是1和0,所以100比2小,2比3小那Sort排序还真是没救了

TOP

回复 3# 猪科技
Sort是按首字符的ASCII码大小排序,相同则比较下一个。默认小的在前面,大的在后面。

TOP

C:\Downloads>sort -n
-n系统找不到指定的文件。

windows不支持-n

TOP

第三方的sort
sort -n
1

评分人数

TOP

1.jpg
10.jpg
100.jpg
11.jpg
12.jpg
2.jpg
20.jpg
A.bat
背景.png
第31日.jpg
请按任意键继续. . .

没有顺序排列

TOP

  1. @echo off
  2. dir /b *.*|sort
  3. pause
复制代码

TOP

返回列表