通过窗口批处理脚本在csv文件中添加字符串



我有一个管道分隔的csv文件,如下所示

METADATA|WorkTerms|PeriodOfServiceId
MERGER|WorkTerms|WT10127
METADATA|Assignment|WorkTermsAssignmentId|PeriodOfServiceId
MERGER|Assignment|WT10127|WR10127

我想要如下所示的输出

METADATA|WorkTerms|PeriodOfServiceId(SourceSystemId)
MERGER|WorkTerms|WT10127
METADATA|Assignment|WorkTermsAssignmentId(SourceSystemId)|PeriodOfServiceId(SourceSystemId)
MERGER|Assignment|WT10127|WR10127

我想在特定位置添加(源系统ID(,这可以通过窗口批处理脚本完成吗?

任何线索,链接建议都会非常有帮助。

谢谢

希瓦姆

首先,仅将第 4 行中的myfile.csv名称替换为第 3 行中的 csv 文件名称和文件的路径。如果要替换的字符串是唯一的字符串,请不要触摸脚本中的其他任何内容。将脚本放在与文件相同的目录中:

@echo off
setlocal enabledelayedexpansion
set "mypath=C:PATHTOCSV"
set "mycsv=myfile.csv"
move "%mypath%%mycsv%" "%mypath%oldmyfile.txt"
for /f "delims=" %%i in ('type "%mypath%oldfile.txt"') do (
set "str=%%i"
set "edit=!str:PeriodOfServiceId=PeriodOfServiceId(SourceSystemId)!"
set "edit=!edit:WorkTermsAssignmentId=WorkTermsAssignmentId(SourceSystemId)!"
echo !edit! >> "%mypath%%mycsv%"
)
del "%mypath%oldfile.txt" /Q

下面是脚本的作用。将原始文件重命名为 oldfile.txt,键入每一行并使其成为变量,替换某些字段,但与搜索字符串不匹配的字段将保持原样,然后它将回显这些行到原始文件名,包括替换。

最新更新