我有一个管道分隔的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,键入每一行并使其成为变量,替换某些字段,但与搜索字符串不匹配的字段将保持原样,然后它将回显这些行到原始文件名,包括替换。