首页 > 解决方案 > 基于文本批量移动文本文件中的行

问题描述

我收到一个数据记录器文件,它有一个文件输出。我想将基于字符串的行移动到多个文本文件。

我可以让它与下面的批处理文件一起工作,但我想将它自动化,因为数据记录器发送的文本文件总是更改其名称(带有日期)

findstr TiltA HMA_input180529.txt >>output.txt

示例输入 csv ( HMA_input180529.txt )

2019-05-29 08:03:48,TiltA,3.420,19.9,0.5017,0.6903
2019-05-29 09:03:48,TiltB,3.420,19.9,0.3017,0.6903

示例输出csv (TiltA.txt)

2019-05-29 08:03:48,TiltA,3.420,19.9,0.5017,0.6903

我不知道从哪里开始调用所有*.*文件,然后将新文本文件保存为与找到的字符串相同的名称,例如 TiltA

标签: batch-file

解决方案


你可以很容易地用一个FOR /F循环来做到这一点。

for %%f in (*.txt) do (
    for /f "tokens=1-6 delims=," %%i in (%%f) do echo %%i,%%j,%%k,%%l,%%m,%%n>"%%j.txt"
)

这假设 的格式token1,TITLE,token3,token4,token5,token6保持不变。

或者

for %%f in (*.txt) do (
    for /f "tokens=2 delims=," %%i in (%%f) do type %%f | find /i "%%i">"%%i.txt"
)

这假设 的格式token1,TITLE,*保持不变。


推荐阅读