我有一个包含数千条记录的文件,每个字段都用引号括起来
"First Name"|"Last Name"|"address"|"City"|"State"|"Zip"如何在windows上编写批处理脚本来处理文件中的数千条记录?
每行都有一条记录,如下所示
First Name|Last Name|address|City|State|Zip发布于 2013-05-02 23:36:07
@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!
)应该能帮你完成这项工作。
发布于 2013-05-03 00:57:38
比Peter的解决方案更稳定(也很好)。
它还可以处理带有感叹号、插入符号
这使用延迟扩展的切换,因为如果禁用延迟扩展,则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 发布于 2013-05-03 14:28:07
下载GnuSed是一个选项:
@echo off
sed "s/\x22//g" "filein.txt" >"fileout.txt"您也可以使用VBS脚本执行相同的操作。
https://stackoverflow.com/questions/16341049
复制相似问题