我有一个文件,其中有数千个记录管道,每个字段用引号
括起来"First Name"|"Last Name"|"address"|"City"|"State"|"Zip"
如何在Windows上编写批处理脚本来处理文件中的数千条记录? 每行在一行上有一条记录,使其看起来如下所示
First Name|Last Name|address|City|State|Zip
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL enabledelayedexpansion
DEL outfile.txt 2>nul
FOR /f "delims=" %%i IN (pipedelims.txt) DO (
SET line=%%i
SET line=!line:"=!
>>outfile.txt ECHO(!line!
)
应该为你做好工作。
答案 1 :(得分:1)
比彼得的(也是好的)解决方案更稳定。
它还可以处理带有感叹号,插入符号的行
这使用了延迟扩展的切换,因为如果禁用了延迟扩展,set "line=%%i"
仅适用于所有字符,但是为了删除引号,必须启用延迟扩展。
以“;”开头的行通常由默认的EOL字符删除,因此我使用了一些棘手的构造来完全禁用EOL。
@echo off
setlocal DisableDelayedExpansion
(
FOR /f delims^=^ EOL^= %%i IN (pipedelims.txt) DO (
SET "line=%%i"
setlocal EnableDelayedExpansion
SET "line=!line:"=!"
ECHO(!line!
endlocal
)
) > outfile.txt
答案 2 :(得分:1)
下载GnuSed是一个选项:
@echo off
sed "s/\x22//g" "filein.txt" >"fileout.txt"
您也可以使用VBS脚本执行相同的操作。