首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows命令脚本中向文件中现有行的末尾添加数字

如何在Windows命令脚本中向文件中现有行的末尾添加数字
EN

Stack Overflow用户
提问于 2017-04-20 22:01:29
回答 2查看 69关注 0票数 0

尝试将数字添加到文件的行尾,如下所示:

代码语言:javascript
复制
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,

诸若此类。我想要做的是写一个脚本,在每一行的最后一个逗号之后添加递增的数字,并保存当前的数字,这样每次运行脚本时,数字都可以继续递增。我该如何着手做这样的事情呢?

EN

回答 2

Stack Overflow用户

发布于 2017-04-21 03:51:42

下面的代码实现了您想要的功能。

代码语言:javascript
复制
@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重命名为您的文件名。

票数 0
EN

Stack Overflow用户

发布于 2017-04-21 05:16:05

我认为这可能是最快的方法:

代码语言:javascript
复制
@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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43521742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档