尝试将数字添加到文件的行尾,如下所示:
Id
CN04FIL002,21,,,cn04fil002.mhf.mhc,1,backupexec,03/30/2017 10:30,03/30/2017 10:30,03/30/2017 10:32,
CN04FIL002,365,,,cn04fil002.mhf.mhc,1,backupexec,03/30/2017 10:30,03/30/2017 10:30,03/30/2017 10:35,
CN04FIL002,3285,,,cn04fil002.mhf.mhc,1,backupexec,03/30/2017 10:30,03/30/2017 10:30,03/30/2017 10:44,
CN04FIL002,9318,,,cn04fil002.mhf.mhc,1,backupexec,03/30/2017 10:30,03/30/2017 10:30,03/30/2017 10:59,
CN04FIL002,3,,,cn04fil002.mhf.mhc,1,backupexec,03/30/2017 10:30,03/30/2017 10:30,03/30/2017 11:01,
CN04FIL002,2373,,,cn04fil002.mhf.mhc,1,backupexec,03/30/2017 10:30,03/30/2017 10:30,03/30/2017 11:29,
CN04FIL002,2684,,,cn04fil002.mhf.mhc,1,backupexec,03/30/2017 10:30,03/30/2017 10:30,03/30/2017 11:10,
CN04FIL002,26,,,cn04fil002.mhf.mhc,1,backupexec,03/30/2017 10:30,03/30/2017 10:30,03/30/2017 11:23,诸若此类。我想要做的是写一个脚本,在每一行的最后一个逗号之后添加递增的数字,并保存当前的数字,这样每次运行脚本时,数字都可以继续递增。我该如何着手做这样的事情呢?
发布于 2017-04-21 03:51:42
下面的代码实现了您想要的功能。
@echo off
setlocal EnableDelayedExpansion
for /f %%i in (count.txt) do (
set "linesCount=%%i"
)
set "numLine=0"
for /f "tokens=*" %%i in (file.txt) do (
set /a "numLine+=1"
if "!linesCount!" equ "0" (
echo(%%i!numLine!>>file.new.txt
) else (
set /a "linesCount-=1"
echo(%%i>>file.new.txt
)
)
move /Y file.new.txt file.txt >nul 2>&1
echo(!numLine!>count.txt我将上次处理的行数保存在一个名为count.txt的文件中。如果它不存在,也就是说,脚本从未运行过,则创建内含零的count.txt。只需将file.txt重命名为您的文件名。
发布于 2017-04-21 05:16:05
我认为这可能是最快的方法:
@echo off
set "_FILE=textfile.txt"
for /F %%C in ('^< "%_FILE%" find /C /V ""') do set "COUNT=%%C"
< "%_FILE%" (
setlocal EnableDelayedExpansion
for /L %%I in (1,1,%COUNT%) do (
set /A "INDEX=%%I-1"
set "LINE=" & set /P LINE=""
if !INDEX! GTR 0 (
echo(!LINE!!INDEX!
) else (
echo(!LINE!
)
)
endlocal
)这将跳过被视为标题的第一行(Id)。
附加的第一个索引号是1。
https://stackoverflow.com/questions/43521742
复制相似问题