特定字母数字字符串中的windows批处理增量

特定字母数字字符串中的windows批处理增量,windows,batch-file,increment,alphanumeric,Windows,Batch File,Increment,Alphanumeric,我有一个源文本文件,我想在其中操作,在分号之前添加一个递增的字母数字,如下所示,并输出OUTPUT.txt 资料来源: 我希望你能帮我做这件事。谢谢…您的数据后面有一个空格,因此代码会从每行末尾删除两个字符 @echo off setlocal enabledelayedexpansion set "txtfile=%~1" set "newfile=OUTPUT.txt" set c=0 if exist "%newfile%" del /f /q "%newfile%" for /f "us

我有一个源文本文件,我想在其中操作,在分号之前添加一个递增的字母数字,如下所示,并输出OUTPUT.txt 资料来源:


我希望你能帮我做这件事。谢谢…

您的数据后面有一个空格,因此代码会从每行末尾删除两个字符

@echo off
setlocal enabledelayedexpansion
set "txtfile=%~1"
set "newfile=OUTPUT.txt"
set c=0
if exist "%newfile%" del /f /q "%newfile%"
for /f "usebackq delims=" %%a in ("%txtfile%") do (
   set /a c+=1
   set "n=000!c!"
   set "n=!n:~-3!"
   set "line=%%a"
   set "line=!line:~0,-2!
   >>"%newfile%" echo !line!,TP!n!;
)
给你:

@echo off
setlocal enabledelayedexpansion
set txtfile=%1
set newfile=OUTPUT.txt

if exist "%newfile%" del /f /q "%newfile%"
for /f "tokens=*" %%a in (%txtfile%) do (
   set newline=%%a
   set /a "inc+=1"
   set num=00!inc!
   set num=!num:~-3!
   set newline=!newline:^;=^,TP!
   echo !newline!!num!; >> %newfile%
)

谢谢matt,但是文件的某些部分没有分号,不应该在其中添加TP;在那个地区。。所以我需要找到分号(;)并将其替换为TP00*;谢谢你的帮助,但是我应该搜索并替换分号;并将其替换为TP001~并且并非所有行都有分号。。我还有一些不应该用TP001插入的行。。非常感谢。我该怎么做呢谢谢你,foxidrive,,输出是TPn:~-3;照原样,它不会增加。。顺便说一句,不是整个文件都有分号,所以我不希望这些部分插入TP00*;所以我想搜索分号;然后将其替换为TP00*;这是递增的。谢谢这是一个
从我替换的结尾处缺失。它满足了您的要求,所以如果您没有显示正确的示例数据,那么您得到的代码对不同格式的数据失败也就不足为奇了。。如果你能帮我做这件事,我会很高兴的。。谢谢..JFTR作为一名支持人员,当数据显示明显是伪造的,并且OP需要帮助时,这是非常令人沮丧的。你提供了帮助,95次你不得不重做你所做的,因为数据是假的,它会影响代码。请参阅我在上面所做的编辑。
@echo off
setlocal enabledelayedexpansion
set txtfile=%1
set newfile=OUTPUT.txt
if exist "%newfile%" del /f /q "%newfile%"
for /f "tokens=*" %%a in (%txtfile%) do (
   set newline=%%a
   set newline=!newline:^;=^,TP001;!
   echo !newline! >> %newfile%
)
@echo off
setlocal enabledelayedexpansion
set "txtfile=%~1"
set "newfile=OUTPUT.txt"
set c=0
if exist "%newfile%" del /f /q "%newfile%"
for /f "usebackq delims=" %%a in ("%txtfile%") do (
   set /a c+=1
   set "n=000!c!"
   set "n=!n:~-3!"
   set "line=%%a"
   set "line=!line:~0,-2!
   >>"%newfile%" echo !line!,TP!n!;
)
@echo off
setlocal enabledelayedexpansion
set "txtfile=%~1"
set "newfile=OUTPUT.txt"
break > "%newfile%"

set "count=1000"
(for /f "usebackq delims=;" %%a in ("%txtfile%") do (
    set /a "count+=1"
    echo(%%a,TP!count:~-3!
))>"%newfile%"
@echo off
setlocal enabledelayedexpansion
set txtfile=%1
set newfile=OUTPUT.txt

if exist "%newfile%" del /f /q "%newfile%"
for /f "tokens=*" %%a in (%txtfile%) do (
   set newline=%%a
   set /a "inc+=1"
   set num=00!inc!
   set num=!num:~-3!
   set newline=!newline:^;=^,TP!
   echo !newline!!num!; >> %newfile%
)