标题: [文本处理] XP下批处理怎样把文件名顺序排列输出? [打印本页]
作者: 猪科技 时间: 2021-6-13 07:28 标题: XP下批处理怎样把文件名顺序排列输出?
比如jpg,bmp图片,文件名有的含数字,有的不含数字,如何顺序排列并输出文件名
作者: 路过 时间: 2021-6-13 18:48
- @echo off
- dir /b *.*|sort
- pause
复制代码
作者: 猪科技 时间: 2021-6-13 19:35
1.jpg
10.jpg
100.jpg
11.jpg
12.jpg
2.jpg
20.jpg
A.bat
背景.png
第31日.jpg
请按任意键继续. . .
没有顺序排列
作者: newswan 时间: 2021-6-13 19:43
第三方的sort
sort -n
作者: 猪科技 时间: 2021-6-14 08:11
C:\Downloads>sort -n
-n系统找不到指定的文件。
windows不支持-n
作者: 路过 时间: 2021-6-14 08:15
回复 3# 猪科技
Sort是按首字符的ASCII码大小排序,相同则比较下一个。默认小的在前面,大的在后面。
作者: 猪科技 时间: 2021-6-14 08:39
谢谢,也就是说,100,里面是1和0,所以100比2小,2比3小那Sort排序还真是没救了
作者: qixiaobin0715 时间: 2021-6-14 08:49
排序是一个复杂的问题,程序一般是按字符来的。通常有按字母和数字顺序排序的说法。
作者: newswan 时间: 2021-6-14 10:33
回复 5# 猪科技
linux 下的 sort ,支持按数字排序
我用的msys2
作者: Batcher 时间: 2021-6-14 12:39
回复 5# 猪科技
4楼说的是这个 sort.exe 第三方命令行工具
http://bcn.bathome.net/s/tool/index.html?key=sort
作者: xp3000 时间: 2021-6-14 17:27
- @if(0)==(0) echo off&setlocal enabledelayedexpansion
- @for /f "delims=" %%i in ('dir /b/a-d/on "*.jpg" "*.png" "*.bmp"') do (
- @for /f "delims=" %%j in ('echo %%i^|cscript -nologo -e:jscript "%~f0"') do (
- set str=00000000%%j&set str=!str:~-8!
- )
- echo !str!-%%i>>sort.txt
- )
- pause & exit /b
- @end
- WSH.echo(WScript.StdIn.ReadAll().replace(/^[^0-9.]+([0-9]+)/g, '$1').replace(/^[^0-9.]+/g, '99999999:').match(/^[0-9]+/g).join('\r\n'))
复制代码
- @echo off&@CD /D "%~dp0"
- for /f "tokens=2* delims=-" %%i in ('type sort.txt^|sort /+1') do (
- echo %%i
- )
- pause
复制代码
只会分开弄,第一次获取文件名补0和加9后输出TXT,第二次读取TXT进行排列,
谁知道怎么合并?不输出TXT
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |