本帖最后由 idwma 于 2021-6-30 21:50 编辑
回复 10# jave000
尴尬...
改一下合并到一个单元格
@echo off&setlocal enabledelayedexpansion
set "第一列="
set "第二列="
set "第三列="
set "第四列="
set "第五列="
set "第六列="
set "第七列="
set "第八列="
set "第九列="
set "第十列="
set out=aaa.csv
for /f "delims=" %%i in ('dir/b *.i?? ^| findstr "^.*i[0-9][0-9].*"') do (
if not !文件名! == %%~ni set/a "第一列+=1"
set a=%%~ni_%%~xi
set a=!a:.=!
ren %%~i !a!.dgn >nul
set "第二列=%%~ni"
set 第二列=!第二列:~0,4!-!第二列:~4,4!-!第二列:~8,4!-!第二列:~12,5!-!第二列:~17!
for %%m in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set 第二列=%%第二列:%%m=%%m%%
if not !文件名! == %%~ni (
for /f "delims=" %%z in (%%~ni.prt) do (set/a 行数一+=1)
for /f "delims=" %%l in ('dir/b %%~ni.i?? ^| findstr "^.*i[0-9][0-9].*"') do (set/a "第八列+=1")
for /f "delims=" %%j in (%%~ni.prt) do (
set/a "行数二+=1"
set "当前行=%%j"
if "!当前行:~0,12!" == " PIPING SPEC" set "第六列=!当前行:~13!"
if "!当前行:~0,24!" == " THERMAL INSULATION SPEC" if "!当前行:~25,1!" == "" (set "第七列=-") else (set "第七列=!当前行:~25,1!")
if "!当前行:~0,14!" == " PIPE NPD (MM)" set "第五列=!第五列!\!当前行:~16!"
if "!当前行:~0,14!" == " CL LENGTH (M)" set "第十列=!第十列! !当前行:~16!" & for /f "tokens=1-10 delims= " %%a in ("!第十列!") do set 第十列求和==SUM(%%a,%%b,%%c,%%d,%%e,%%f,%%g,%%h,^)
if "!行数一!" == "!行数二!" echo;"!第一列!","!第二列!","!第三列!","!第四列!","
if "!行数一!" == "!行数二!" for /f "tokens=1-10 delims=\" %%a in ("!第五列!") do (echo;%%a && echo;%%b && echo;%%c && echo;%%d)
if "!行数一!" == "!行数二!" echo;","!第六列!","!第七列!","!第八列!","!第九列!","!第十列!","!第十列求和!"
if "!行数一!" == "!行数二!" set 行数一= & set 行数二= & set 第五列= & set 第十列=
)
set 第八列=
)
set 文件名=%%~ni
)>>!out!
pause |