Windows Batch file可为文本文件中的特定位置添加编号

Windows Batch file可为文本文件中的特定位置添加编号,windows,batch-file,command,Windows,Batch File,Command,我有一个批处理文件,打算在文本文件中的特定位置添加一个数字 例如: A,B,C,D,1,07/2018,3,4 E,F,G,H,5,06/2019,7,8 I,J,K,L,9,10/2020,11,12 输出将是: A,B,C,D,1,07/30/2018,3,4 E,F,G,H,5,06/30/2019,7,8 I,J,K,L,9,10/30/2020,11,12 编辑 这是我的代码,但它只在每行的末尾起作用。但我需要知道熟食店的具体位置,并添加一些文字或数字 @echo off setL

我有一个批处理文件,打算在文本文件中的特定位置添加一个数字

例如:

A,B,C,D,1,07/2018,3,4
E,F,G,H,5,06/2019,7,8
I,J,K,L,9,10/2020,11,12
输出将是:

A,B,C,D,1,07/30/2018,3,4
E,F,G,H,5,06/30/2019,7,8
I,J,K,L,9,10/30/2020,11,12
编辑

这是我的代码,但它只在每行的末尾起作用。但我需要知道熟食店的具体位置,并添加一些文字或数字

@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims=/" %%a in (oldfile.text) do echo ^%%a^/ >>newfile.text

以下示例脚本(从与示例源文件相同的目录运行)应能正常工作:

@回音 设置SrcFile=oldfile.text 设置OutFile=newfile.text 如果不存在%SrcFile%Exit/B 对于/F UseBackQ EOL=,标记=1-6*Delims=,%SrcFile%中的%%A 在%%F中,代币的Do=1*Delims=/%%%H Do Echo=%%A、%%B、%%C、%%D、%%E、%%H/30/%%I、%%G>%OutFile% 根据需要,分别在第2行和第3行更改源文件名和输出文件名

一个非常简单的解释:

firstForloop读取每个源文件行,使用逗号作为分隔符将其拆分为七个标记。第一个令牌被分配为%%A,第二个令牌被分配为%%B,第三个令牌被分配为%%C,第四个令牌被分配为%%D,第五个令牌被分配为%%E,第六个令牌被分配为%%F,第六个令牌被分配为*,第六个令牌被分配给%%G

我们要处理第六个令牌的内容,即%%F

secondForloop读取分配为%%F的每个字符串,并使用正斜杠作为分隔符将其拆分为两个标记。将第一个令牌分配为%%H,并将第一个令牌*之后的所有内容分配给%%I

我们希望将新的string30/置于令牌%%Hand%%Iadding之间,并将其重新放入删除的分隔符中。%H/30/%I

我们现在要将修改后的第六个令牌%%F、%%H/30/%%I放回添加已删除分隔符的行中。%%A、 %%B、%%C、%%D、%%E、%%H/30/%%I、%%G

我们希望将循环的输出写入输出文件,因此我们将循环括在括号内,并使用标准重定向操作符重定向到新文件>

截图

欢迎来到堆栈溢出。这不是一个code/SQL/regex编写服务,在这里,您发布了一个需求列表和选择的语言,然后一个代码猴子为您编写代码。我们非常乐意提供帮助,但我们希望您首先自己努力解决问题。一旦你这样做了,你可以解释你的问题,包括你工作的相关部分,并提出一个具体的问题,我们会尽力帮助你。祝你好运。你可以使用FOR/F命令来读取文件。然后,您可以使用TOKENS和DELIMS选项以斜杠作为分隔符拆分行。for/f TOKENS=1*DELIMS=/%%a in oldfile.text do echo%%a/30/%%b>newfile.text Hello我尝试了您的代码,但它输出了newfile.txt,但里面没有数据。代码运行良好,并且已经在至少两个不同的Windows操作系统上进行了测试版本。您复制的文件不正确,或者没有针对问题中使用的文件运行它。请提供更多信息,确切地说,您在我发布的脚本中修改了什么,以及您运行它所针对的文件的内容。哦,很抱歉,它现在可以工作了。我将把你的答案记为答案。谢谢你!嗨,伙计。我只是想问我是否想添加if-else语句,我将把它放在哪里?我不明白你的意思。Else语句在If语句之后是有条件的;你必须更具体地说明你想做什么。