本帖最后由 qixiaobin0715 于 2024-12-2 16:54 编辑
这样可以不必限定文件个数: | @echo off | | cd /d "D:\KZ1" | | setlocal enabledelayedexpansion | | for /f "delims=" %%i in ('dir /b /a-d *.txt^|findstr /be "[1-9][0-9]*\.txt"') do ( | | set /a "n=(%%~ni-1)/10+1" | | type "%%i">>"D:\KZ2\!n!.txt" | | ) | | pauseCOPY |
需要注意的是,个别文件合并顺序可能会不一样。比如1-10这一组,合并顺序是1.txt,10.txt,2.txt-9.txt。
回复 1# 思想之翼
参考5楼的写法,这样效率要高一些: | @echo off | | cd /d "D:\KZ1" | | setlocal enabledelayedexpansion | | for /f "delims=" %%i in ('dir /b /a-d *1.txt') do ( | | set n1=%%~ni | | set "n=(n1-1)/10+1" | | set /a n2=n1+9 | | (for /l %%j in (!n1!,1,!n2!) do ( | | if exist %%j.txt type %%j.txt | | ))>"D:\KZ2\!n!.txt" | | ) | | pauseCOPY |
不必评分,能解决问题就好。 |