我有一个文件,每个字段分隔数千记录管的加引号脚本删除字符
"First Name"|"Last Name"|"address"|"City"|"State"|"Zip"
我怎么会写在Windows批处理脚本来处理在一个文件中的数千条记录?
每一行都有一行一条记录,使它看起来像下面
First Name|Last Name|address|City|State|Zip
我有一个文件,每个字段分隔数千记录管的加引号脚本删除字符
"First Name"|"Last Name"|"address"|"City"|"State"|"Zip"
我怎么会写在Windows批处理脚本来处理在一个文件中的数千条记录?
每一行都有一行一条记录,使它看起来像下面
First Name|Last Name|address|City|State|Zip
@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!
)
应该为你做的工作。
将重定向移出FOR循环更好。它会删除感叹号,有时候也会插入一个号码 – jeb 2013-05-02 16:50:23
比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
下载GnuSed是一个选项:
@echo off
sed "s/\x22//g" "filein.txt" >"fileout.txt"
也做使用VBS脚本同样的事情。
当你说“过程”时,你究竟是什么意思? – 2013-05-02 14:49:14
对不起。我的意思是我有一个带有记录的文本文件。所以基本上批处理文件应该从文本文件中读取每条记录,并将其引出并将所有结果存储在文本文件中。 – Villumanati 2013-05-02 14:56:35