思路:
先输出所有文本的路径,输出时在路径前标上数字,每个文件夹都从 1 开始计数,最后用 sort 命令可得出这样的列表:
1:a\复件 4.txt
1:b\2.txt
1:c\2.txt
10:a\复件 复件 5.txt
10:b\list2.txt
10:c\复件 3.txt
11:a\复件 复件 1.txt
11:b\nircmd.txt
11:c\复件 复件 5.txt
... - @echo off
- set "文件夹1=a"
- set "文件夹2=b"
- set "文件夹3=c"
- set "输出文件夹=#Output#"
-
- SetLocal EnableDelayedExpansion
- md "%输出文件夹%" 2>nul
-
- (for %%d in ("%文件夹1%" "%文件夹2%" "%文件夹3%") do (
- set n=
- for %%f in (%%d\*.txt) do (
- set /a n += 1
- echo !n!:%%f
- )
- ))>"%temp%\.list"
- sort "%temp%\.list" > "%temp%\.list2"
-
- for /f "usebackq tokens=1,* delims=:" %%a in ("%temp%\.list2") do (
- set files_%%a=!files_%%a!+"%%b"
- set /a count_%%a += 1
- if !count_%%a!==3 (
- copy /b !files_%%a:~1! "%输出文件夹%\%%a.txt"
- del /a /f !files_%%a:+= !
- set count_%%a=
- set files_%%a=
- )
- )
-
- del "%temp%\.list" "%temp%\.list2"
- title 完成
- pause
复制代码
[ 本帖最后由 tmplinshi 于 2010-12-24 12:49 编辑 ] |