我有一个包含数千个文本文件的目录。我想在前50个文本文件中插入50个数字,在接下来的50个文件中插入50个数字,依此类推至数字15,然后再从第一个重复。
我还希望能够通过用户输入指定起始编号(1到15之间)以及起始编号重复的次数(仅对于起始编号,50应该是后续的常量号码)。
例如:我输入“3”作为“起始编号”,输入“43”作为“起始编号3的重复次数”,以便将“3”插入目录中的前43个文件中, “4”进入下50个文件,“5”进入下一个50,依此类推至15,然后从1开始重复,直到处理完所有文本文件。
基本上,
"3" >> files 1 to 43
"4" >> files 44 to 93
"5" >> files 94 to 143
"6" >> files 144 to 193
...
"15" >> files 594 to 643
"1" >> files 644 to 693
"2" >> files 694 to 743
...
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL
SET "targetdir=U:\destdir"
SET "startnum=%1"
SET "repeats=%2"
IF NOT DEFINED repeats SET /a repeats=50
IF NOT DEFINED startnum SET /a startnum=1
FOR /f "delims=" %%a IN (
'dir /b /a-d "%targetdir%\*.txt" '
) DO (
CALL :appendx >>"%targetdir%\%%a"
)
GOTO :EOF
:appendx
ECHO %startnum%
SET /a repeats-=1
IF %repeats%==0 SET /a repeats=50&SET /a startnum=(startnum %% 15) + 1
GOTO :eof
似乎有一件奇怪的事情要做,但现在就是。
您需要更改targetdir
的设置以适合您的具体情况。
我建议您对虚拟测试目录进行测试。
答案 1 :(得分:0)
@echo off
setlocal
set /A count50=50, number=1
set /P "number=Starting number [press Enter for 1]: "
set /P "count50=Number of times [press Enter for 50]: "
set /A count15=number-1, count50=50-count50
for %%a in (*.txt) do (
>> "%%a" call echo %%number%%
set /A "count50+=1, count15=(count15+!(count50%%50))%%15, number=count15+1"
)