0

我正在运行 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”变量不会改变,但其他变量会改变。任何帮助将不胜感激,因为我对批处理文件的了解非常有限。

4

2 回答 2

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=|" ...,但由于您不提供有关实际结构的线索您的来源或产生所需输出所需的处理,这就是我必须离开的地方......

于 2013-08-15T14:22:05.320 回答
1

sed for Windows 的解决方案

sed "y/|/ /" file
于 2013-08-15T10:55:44.470 回答