找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20463|回复: 3

[文本处理] 批处理sort命令排序问题,求大佬指教

[复制链接]
发表于 2023-8-7 09:48:39 | 显示全部楼层 |阅读模式
有0-20个文件,生成的xxx.txt文件里面排序不是按照大小排的
排序出来是0-1-10-11这样的,代码如下,还请大佬给修正一下,谢谢!
  1. @echo off
  2. chcp 65001 >nul
  3. rem 批处理保存为utf-8编码格式
  4. for /d %%d in (*) do (
  5.         pushd "%%d"
  6.         (for /f "delims=" %%i in ('dir /b /a-d *.mp4 ^|sort') do (
  7.                 echo file '%%~fi'
  8.         ))>xxx.txt
  9.         if exist xxx.txt if not exist "%~dp0%%~nxd.mp4" (
  10.                 ffmpeg.exe -f concat -safe 0 -i xxx.txt -c copy "%~dp0%%~nxd.mp4"
  11.         )
  12.        
  13.         popd
  14. )
  15. pause
复制代码
发表于 2023-8-7 10:21:00 | 显示全部楼层
要不先预处理一下,把文件名前面加0补满3位,比如1.txt都变成001.txt
  1. dir -Recurse *.txt | rni -NewName {([int]$_.BaseName).ToString('D3')+$_.Extension}
复制代码
发表于 2023-8-7 10:44:25 | 显示全部楼层
  1. @echo off
  2. chcp 65001 >nul
  3. rem 批处理保存为utf-8编码格式
  4. for /d %%d in (*) do (
  5.         pushd "%%d"
  6.         setlocal enabledelayedexpansion
  7.         set n=0
  8.         for /f "delims=" %%i in ('dir /b /a-d *.mp4') do (
  9.                 if %%~ni gtr !n! set n=%%~ni
  10.         )
  11.         (for /l %%l in (1,1,!n!) do (
  12.                 if exist "%%l.mp4" echo file '%%l.mp4'
  13.         ))>xxx.txt
  14.         endlocal
  15.         if exist xxx.txt if not exist "%~dp0%%~nxd.mp4" (
  16.                 ffmpeg.exe -f concat -safe 0 -i xxx.txt -c copy "%~dp0%%~nxd.mp4"
  17.         )
  18.         del xxx.txt 2>nul
  19.         popd
  20. )
  21. pause
复制代码
 楼主| 发表于 2023-8-7 11:04:18 | 显示全部楼层
回复 3# 77七


    可以了大佬,万分感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 15:37 , Processed in 0.016792 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表