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

[文本处理] 批处理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
复制代码

回复 3# 77七


    可以了大佬,万分感谢!

TOP

  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
复制代码
bat小白,请多指教!谢谢!

TOP

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

TOP

返回列表