我正在运行Windows Vista,我需要一些帮助才能编写批处理程序从文本文件中提取一些数据,以便我可以生成另一个包含特定格式数据的文本文件
问题是文本文件数据被一堆||||分开我不知道如何删除或读取它们之间的数据。
以下是数据文件的示例:
MMM|^~\&|SSS||||20130813084347||RUR|14864-1W2220300-9|P^|2.3.0|||NE|ER
PID|||2013-1W2220300|-|LASTNAME^FIRSTNAME^||19971101|F|||||(416)222-3888||||||X2861673469 HY
这是我需要生成的输出文件。
currentdate currenttime REC F M 1W2220300 2861673469 HY LASTNAME FIRSTNAME 14864 13-AUG-2013 08:43:47
“REC”“F”和“M”变量不会改变,但其他变量不会改变。我非常感谢任何帮助,因为我对批处理文件的了解非常有限。
答案 0 :(得分:1)
sed "y/|/ /" file
答案 1 :(得分:1)
@ECHO OFF
SETLOCAL
(
FOR /f "delims=" %%a IN (
q18241872.txt
) DO (
SET "var=%%a"
SETLOCAL enabledelayedexpansion
SET var=!var:^|=^| !
ECHO !var!
ENDLOCAL
)
)>newfile.txt
GOTO :EOF
这应该从原始文件中生成newfile.txt
,我已经任意命名q18241872.txt
。
新文件应该将每个|
分隔一个空格(没有任何关于空间的神奇,可能是理性中的任何字符 - @
也许......)然后您就可以进一步处理使用FOR/F "tokens=...delims=|" ...
,但既然你不知道你的源的实际结构,也不知道产生你想要的输出所需的处理,那就是我要离开的地方......