[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
再来个简单粗暴的
@echo off
findstr /b /r /c:"^  *[0-9]........................................" a.txt > b.txt
pause
1

评分人数

TOP

本帖最后由 idwma 于 2021-6-26 10:41 编辑

新的灵感
稍做修改
@echo off&setlocal EnableDelayedExpansion
set out=ffff.txt
del !out!
set d=3

for /f "delims=" %%k in ('dir/b *.prt') do (
        set na=%%~nk
        set na=!na:~0,4!-!na:~5,4!-!na:~9,4!-!na:~12,5!-!na:~16!

        for /f "delims=" %%i in (%%k) do (
                set b=%%i
                for /l %%j in (1,1,30) do (
                        if "!b:~0,3!" equ "  %%j" set e=!b:~0,85! & set d=0
                        if "!b:~0,4!" equ "   %%j" set e=!b:~0,85! & set d=0
                )
                if  "!b:~0,11!" equ  "           " (if !b:~-3! neq NPD  set c=!c!!b:~11! & set d=1)
                if "!d!" equ "1" set f=!na!   !e:~0,49!!c!          !e:~-38!
                if "!d!" equ "0"   echo;!f! >> !out! && set "c=" & set "f=" & set d=1

        )
        set d=3
)
echo;!f! >> !out!

pause
1

评分人数

TOP

本帖最后由 idwma 于 2021-6-27 19:29 编辑

回复 52# jave000


    完美匹配
改一下加几个分号可以自动分
再改一下,分号还是不稳改制表符来分隔
@echo off&setlocal EnableDelayedExpansion
set out=aa.txt
set d=3
for /f "delims=" %%a in ('mshta "about:<script>new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write("\t\t");close();</script>"') do set tab=%%a

for /f "delims=" %%k in ('dir/b *.prt') do (
        set na=%%~nk
        set na=!na:~0,4!-!na:~4,4!-!na:~8,4!-!na:~12,5!-!na:~17!
        call :con
        for /f "delims=" %%i in (%%k) do (
                set b=%%i
                for /l %%j in (1,1,30) do (
                        if "!b:~0,3!" equ "  %%j" set e=!b:~0,85! & set d=0
                        if "!b:~0,4!" equ "   %%j" set e=!b:~0,85! & set d=0
                )
                if "!d!" equ "0" call :ff
                if  "!b:~0,11!" equ  "           " (if !b:~-3! neq NPD  set c=!c!!b:~11! & set d=1)
                if "!d!" equ "1" set f=!na! !tab! !eee!!c! !tab! !e:~50,13! !tab! !e:~63,15! !tab! !e:~-5!
                if "!d!" equ "0"   echo;!f! >> !out! && set "c=" & set "f=" & set d=1
                echo;!f!
        )
        set d=3
)
echo;!f! >> !out!
pause
exit

:ff
for /l %%m in (49,-1,1) do (
        set ee=!e:~0,49!
        set eee=!ee:~1,%%m!
        if not "!b:~%%m,1!" == " "  goto :EOF
)

:con
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 na=%%na:%%m=%%m%%
1

评分人数

TOP

返回列表