【问题标题】:Batch file to write incremental numbers写入增量数字的批处理文件
【发布时间】:2013-01-28 10:42:44
【问题描述】:

我需要一个批处理脚本来获取用户的输入并将其写入文本文件的第二列。下面是我尝试过的,但它只是创建了递增的数字序列,但我无法将它们放在正确的位置。

set /p rows: Enter number of rows:

for /l %%g in (1,1,%rows%) do echo %%g>> myfile.txt

myfile.txt 是一个逗号分隔的文件,有 10 列。

我希望增量行号出现在第二列中。

【问题讨论】:

    标签: windows-7 batch-file


    【解决方案1】:

    假设myfile.txt 文件看起来像这样

    h,e,l,l,o,b,a,l,i,c
    

    那么这个

    setlocal enabledelayedexpansion
    set /p num=Enter number of rows:
    set /a row=1
    for /f "tokens=1-10 delims=," %%a in (myfile.txt) do (
    echo %%a,!row!,%%b,%%c,%%d,%%e,%%f,%%g,%%h,%%i,%%j >>new.txt
    set /a row+=1
    if !row! gtr !num! goto :BREAK
    )
    :BREAK
    del myfile.txt /f /q
    ren new.txt myfile.txt
    

    会输出

    h,1,e,l,l,o,b,a,l,i,c  
    h,2,e,l,l,o,b,a,l,i,c
    

    【讨论】:

    • Bali C,我试过你的代码,这又重复了同样的数字。
    • @davidb 对不起,我意识到在我发布并在我自己的脚本中更正它之后,没有更新答案,现在更新!
    • 谢谢Bali C,我还有一个问题,你能帮帮我吗,例如我有一个文本文件,我在该文本文件中有多个分隔符,我需要找到字符串“line=”和添加增量数字,例如 line=1、line=2、line=3.. 可以吗?
    • 您可以搜索该行并将其替换为诸如set string=line= 之类的递增数字,然后将其替换为set string=%string:line==line=!num!%
    • 不用担心。我真的不能不确切地看到您要做什么,我的建议只是伪代码,您为什么不发布另一个带有您确切要求的问题,然后将链接发送给我,我可以看看?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2023-03-29
    • 2014-10-02
    • 1970-01-01
    相关资源
    最近更新 更多