Board logo

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

作者: 877    时间: 2023-8-7 09:48     标题: 批处理sort命令排序问题,求大佬指教

有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. popd
  13. )
  14. pause
复制代码

作者: wanghan519    时间: 2023-8-7 10:21

要不先预处理一下,把文件名前面加0补满3位,比如1.txt都变成001.txt
  1. dir -Recurse *.txt | rni -NewName {([int]$_.BaseName).ToString('D3')+$_.Extension}
复制代码

作者: 77七    时间: 2023-8-7 10:44

  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
复制代码

作者: 877    时间: 2023-8-7 11:04

回复 3# 77七


    可以了大佬,万分感谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2