for %%a in (*.txt) do echo %%~na >> fileslist.txt
如果我在一个文件夹中运行此代码,那么将创建一个名为fileslist的.txt文件,该文件夹中的.txt文件的所有文件名都将打印在该文件中。但我想创建两个文件(假设fileslist1
和fileslist2
),该文件夹的一半文件将转到fileslist1,该文件夹中文件的下半部分将转到fileslist2。我怎么能这样做?
请帮我解决这个问题?
答案 0 :(得分:0)
这应该有效:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET count=0
FOR /F %%F IN ('dir /b *.txt') DO SET /A count=!count!+1
SET /A half=%count%/2
IF %half%*2 LSS %count% SET /A half=%half%+1
SET index=0
FOR %%a IN (*.txt) DO (
SET /A index=!index!+1
IF %half% GEQ !index! ECHO %%~na >> fileslist1.txt
IF %half% LSS !index! ECHO %%~na >> fileslist2.txt
)
大部分代码仅用于识别文件中的一半"因为我们需要处理奇数。如果您知道有多少文件,或者如果您说将前10个文件放入list1.txt,接下来的10个文件放入list2.txt,则可以跳过代码的大部分内容。接下来10进入list3.txt等等。 "半"在这种情况下很烦人。或者也许我只是想不出一个优雅的方法来解决这个问题。