使用批处理文件替换csv文件中的字符串
我有一个有18个字段的csv文件。我需要将文件复制到txt文件,删除前四行,替换字段#8中的数据,并用新名称保存文件。使用批处理文件替换csv文件中的字符串,csv,batch-file,Csv,Batch File,我有一个有18个字段的csv文件。我需要将文件复制到txt文件,删除前四行,替换字段#8中的数据,并用新名称保存文件。 字段#8中的数据是一个整数(例如,1、2、3等)。每个整数都需要用单独的值替换(例如,我需要用1005替换1,用1008替换3)。我正在尝试修改/修复以下批处理文件: @echo off More +4 datatest.csv > datacopy.txt ( FOR /f "tokens=8 delims=," %%h in (datacopy.txt) do (
字段#8中的数据是一个整数(例如,1、2、3等)。每个整数都需要用单独的值替换(例如,我需要用1005替换1,用1008替换3)。我正在尝试修改/修复以下批处理文件:
@echo off
More +4 datatest.csv > datacopy.txt
( FOR /f "tokens=8 delims=," %%h in (datacopy.txt) do (
if "%%h"=="3" (echo 1008) else (
echo %%a %%b %%c` echo %%a %%b %%c
)
)
)>paygoinvoice.txt
@echo on
- 如果只选择了一个标记,则只会得到一列(%%h)
- 直接解析more命令时,不需要临时文件
- 根据要替换的整数数量,可以使用带有int的伪数组作为索引/指针
- 您可以分别获取所有列(
,tokens=1-18
),也可以将其余的%%A..%%R
集中到一个变量中*
有些数据(不是全部)用引号括起来。是否有一种方法来修改批处理文件以删除所有引文?删除(外部)双引号,使用<代码> > /代码>倾斜修改器,例如“代码> %%~A /代码>等。如果答案解决了您的问题,或者您发现它有帮助,您应该考虑和/或绿色复选标记是“接受”?我试着投赞成票,但因为我是一个新用户,我不认为它记录了我的投票。我感谢你的帮助!是的,但您可能需要等待一段时间才能启用它。
@echo off & Setlocal EnableDelayedExpansion
( FOR /f "tokens=1-8* delims=," %%A in ('More +4 datatest.csv') do (
Set "H=%%H"
if "%%H"=="1" Set "H=1005"
if "%%H"=="3" Set "H=1008"
echo %%A,%%B,%%C,...,!H!,%%I
)
)>paygoinvoice.txt
@echo on