首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于将txt转换为CSV的批处理文件移除空格和逗号转换为列

用于将txt转换为CSV的批处理文件移除空格和逗号转换为列
EN

Stack Overflow用户
提问于 2021-01-13 04:08:01
回答 2查看 716关注 0票数 0

我是新的批处理文件程序。

我有很多文本(.txt)文件要转换为CSV。如果使用手动方法(复制粘贴到excel),删除空格或逗号,并转换成列,这将花费大量的时间。

我有一个想法:创建一个批处理文件,并将它放在文本(.txt文件)将在运行批处理文件时转换为CSV的同一个文件夹中,它将自动将文本转换为CSV并创建CSV文件。

文本文件格式如下所示

案文如下:

代码语言:javascript
复制
 ADINA: AUI version 9.3.1, 22 November 2017:  *** NO HEADING DEFINED ***
 Licensed from ADINA R&D, Inc.
 Finite element program ADINA, response range type load-step:
 Listing for zone EG1:
      POINT        NODAL_FORCE-R

 Time 1.40000E+01

 Element 101100 of element group 1

 Local node 1     -2.96954E+03
 Local node 2      2.96954E+03

 Element 101200 of element group 1

 Local node 1      1.31964E+04
 Local node 2     -1.31964E+04

 Element 101300 of element group 1

 Local node 1      1.38607E+04
 Local node 2     -1.38607E+04

 Element 101400 of element group 1

 Local node 1     -3.57060E+03
 Local node 2      3.57060E+03

 Element 102100 of element group 1

 Local node 1      2.22511E+04

此外,我想删除红框中的文字。因为我不用它。

我想要创建的CSV文件如下所示

文件夹结构

该批处理文件代码有任何解决方案吗?

真的很感谢你的帮助。谢谢大家!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-13 05:30:06

我想这能做你想做的事:

代码语言:javascript
复制
@echo off
if "%1" == "" goto FindFiles

:ProcessFile
for /F "tokens=1,2,3,4,5,6" %%A in (%1) do (
if "%%A" == "Time" echo %%A,%%B
if "%%A" == "Local" echo %%A,%%B,%%C,%%D
if "%%A" == "Element" echo.
if "%%A" == "Element" echo %%A,%%B,%%C,%%D,%%E,%%F
if "%%A" == "Element" echo.
)
goto Exit

:FindFiles
for %%I in (*.txt) do call %0 %%I > %%~nI.csv
goto Exit

:Exit

当双击时,它会对当前文件夹中的每个*.txt文件运行一次。每个文件只通过保存以TimeLocalElement开头的行来处理(在需要时添加空行)。保存的每一行都将空格分隔的值保存在中间的逗号中。

票数 0
EN

Stack Overflow用户

发布于 2021-01-14 02:46:13

下面是一个基本的例子,作为你学习经验的一部分。该答案只适用于您提供的已发布的文本文件内容。我不会解释它里面的任何东西,也不会因为你原来发布的任务的后续变化而改变任何东西(因为你自己没有尝试过任何事情)。

代码语言:javascript
复制
@If Exist "force.txt" ((For /F "Skip=9 Tokens=1-7" %%G In (
    '%__AppDir__%find.exe /N /V "" ^< "force.txt"'
) Do @If Not "%%M" == "" (Echo %%H,%%I,%%J,%%K,%%L,%%M
    ) Else If Not "%%L" == "" (Echo %%H,%%I,%%J,%%K,%%L
    ) Else If Not "%%K" == "" (Echo %%H,%%I,%%J.%%K
    ) Else If Not "%%J" == "" (Echo %%H,%%I,%%J
    ) Else If Not "%%I" == "" (Echo %%H,%%I
    ) Else If Not "%%H" == "" (Echo %%H) Else Echo=) > "force.csv")

一旦进入您的电子表格,您仍然需要合并您所需的单元格对齐和格式更改,如果您希望它与您发布的图像匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65695542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档