本帖最后由 meiszp 于 2024-7-10 08:32 编辑
下面代码是从txt文件提取数据,提取第4行(不算第2行空行)文字输出到out.txt的第一列,由于每个txt的第4行字符串长度不同,小于12个字符,为了统一输出格式,要求长度为12个字符,不足空格补齐。
txt文件的前几行- SDDD BLDE Co.
-
- ***********************************************************************
- ANABDCD OF LAEDDV SEADDVLS
- 101
- ***********************************************************************
-
- ***********************************************
复制代码 现在输出的格式,列不对齐
101 0.135202E+06 0.497862E+05 0.475893E+02 -.292984E+02 -.193619E-01 0.974525E-02
102-111 0.460730E+05 -.286256E+05 0.751879E+02 0.574422E+02 0.108112E-01 -.289517E-01
201 0.232319E+06 0.828039E+05 0.854119E+02 -.519552E+02 -.386417E-01 0.163690E-01
202-34 0.661483E+05 -.445798E+05 0.111548E+03 0.100785E+03 0.273654E-01 -.449156E-01
希望输出的格式如下,列对齐
101 0.135202E+06 0.497862E+05 0.475893E+02 -.292984E+02 -.193619E-01 0.974525E-02
102-111 0.460730E+05 -.286256E+05 0.751879E+02 0.574422E+02 0.108112E-01 -.289517E-01
201 0.232319E+06 0.828039E+05 0.854119E+02 -.519552E+02 -.386417E-01 0.163690E-01
202-34 0.661483E+05 -.445798E+05 0.111548E+03 0.100785E+03 0.273654E-01 -.449156E-01- @echo off
- (for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- setlocal enabledelayedexpansion
- for /f "tokens=1-3,5,11" %%a in ('type "%%i"') do (
- set /a n+=1
- if !n! equ 4 (
- set str=%%a ::提取第4行
- ) else if "%%a %%b %%c"=="inclu ma coef" (
- set m=0
- ) else if defined m (
- set /a m+=1
- set str=!str! %%d %%e
- if !m! equ 3 (
- echo,!str!
- set m=
- )
- )
- )
- endlocal
- ))>out.txt
- pause
复制代码
|