2017-02-28 141 views
0

所以我想创建一个批处理文件,它将以动态的方式创建多个包含3个文件名的listX.txt文件,例如,假设我有A.txt,B.txt, C.txt和D.txt,期望的输出将是两个列表文件,第一个是包含前三个.txt的list1.txt,第二个是包含D.txt的list2.txt,可以这样做做了什么?怎么样?我现在有这样的事情通过批处理文件动态创建文件

for %%i in (*.txt) do (

    ::title 
    echo %%~ni>>list.txt 
) 
PAUSE 

它会列出所有到一个单一的文件,但我不知道如何动态创建多个列表。

回答

1

因此,您需要对文件进行计数,计算文件编号并避免处理新生成的listx.txt文件。

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion 
Set cnt=0 
for /f "tokens=*" %%i in (
    'Dir /B /ON /A-D *.txt ^|findstr /v /i "list[0-9]*\.txt' 
) do (
    set /A "cnt+=1,file#=(cnt-1)/3+1" 
    ::title 
    echo %%~ni>>"list!file#!.txt" 
) 
timeout -1