저는 배치 파일 프로그램을 처음 사용합니다.
CSV로 변환 할 텍스트 (.txt) 파일이 많습니다. (엑셀로 복사-붙여 넣기) 수동 방법을 사용하는 경우 공백이나 쉼표를 제거하고 열로 변환하는 데 많은 시간이 걸립니다.
배치 파일을 생성하고 배치 파일이 실행될 때 텍스트 (.txt 파일)가 CSV로 변환되는 동일한 폴더에 배치하는 아이디어가 있습니다. 그러면 텍스트가 자동으로 CSV로 변환되고 CSV 파일이 생성됩니다.
텍스트 파일 형식은 다음과 같습니다.
텍스트로 :
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 파일은 다음과 같습니다.
폴더 구조
이 배치 파일 코드에 대한 해결책이 있습니까?
도와 주셔서 감사합니다. 모두 감사합니다!
나는 이것이 당신이 원하는 것을 할 것이라고 생각합니다.
@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 파일에 대해 한 번씩 실행됩니다. 각 파일은 Time
, Local
또는 Element
(필요한 경우 빈 줄 추가)로 시작하는 줄만 저장하여 처리됩니다 . 저장되는 각 행에는 대신 쉼표로 저장된 각 공백으로 구분 된 값이 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다