标题: [文本处理] 求助bat批处理转换文本格式 [打印本页]
作者: z1366870839 时间: 2019-5-13 17:05 标题: 求助bat批处理转换文本格式
[104-20]
稀有金属=25000稀有金属*75 |
钢材=100000钢材*94 |
石油=1000石油*7035 |
总数=总稀有金属:1875000 | 总钢材:9400000 | 总石油:7035000 |
[249-1【6章】*]
银币=150银币*2880 | 250银币*3520 | 25000银币*77 |
铁矿=200铁矿*1950 | 600铁矿*1950 | 1000铁矿*2100 | 100000铁矿*39 |
木材=1000木材*3174 | 5000木材*1178 | 50000木材*6 |
粮食=1000粮食*3174 | 5000粮食*403 | 50000粮食*12 |
总数=总银币:3237000 | 总铁矿:7560000 | 总木材:9364000 | 总粮食:5789000 |
[244【6章】*]
银币=50银币*747 | 150银币*7967 | 250银币*6242 | 25000银币*133 |
铁矿=200铁矿*1950 | 600铁矿*1950 | 1000铁矿*2100 | 100000铁矿*48 |
木材=1000木材*3111 | 5000木材*851 | 10000木材*4 | 50000木材*2 |
粮食=1000粮食*3111 | 5000粮食*267 | 50000粮食*22 |
总数=总银币:6117900 | 总铁矿:8460000 | 总木材:7506000 | 总粮食:5546000 |
转换成
[104-20] 总数=总稀有金属 1875000 总钢材 9400000 总石油 7035000
[249-1【6章】*] 总数=总银币 3237000 总铁矿 7560000 总木材 9364000 总粮食 5789000
[244【6章】*] 总数=总银币 6117900 总铁矿 8460000 总木材 7506000 总粮食 5546000
转换后的空格为 tab
作者: z1366870839 时间: 2019-5-13 17:48
求助!谢谢大家
作者: Batcher 时间: 2019-5-13 19:38
- @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%a in ('type "1.txt"') do (
- set "line=%%a"
- if "!line:~0,1!" equ "[" (
- set /p =%%a <nul
- ) else if "!line:~0,2!" equ "总数" (
- set "line=!line:|= !"
- set "line=!line: =!"
- echo,!line!
- )
- ))>"2.txt"
复制代码
作者: /zhqsystem/zhq 时间: 2019-5-14 02:07
本帖最后由 /zhqsystem/zhq 于 2019-5-14 02:22 编辑
水一个通用代码,适用范围ini标准环境- @Echo Off&Color 0e
- SetLocal EnableDelayedExpansion
- set "$=0"&set "$-"
- for /f "delims=" %%i in ('type "%~f1"')do (
- set "#=%%i"
- set "#=!#:|= !"
- if /i "!#:~0,1!"=="[" (
- set/a "$+=1"
- set "$bak=!#!"
- )else (
- for /f "delims=" %%z in ("!$!")do (
- if defined _%%z (
- set "_%%z=!_%%z! !#!"
- )else (
- set "_%%z=!$bak!"
- )
- )
- )
- )
- for /l %%n in (1,1,!$!)do if defined _%%n (
- echo,!_%%n!
- set "_%%n="
- )
- pause
- goto:eof
复制代码
作者: z1366870839 时间: 2019-5-14 13:35
回复 3# Batcher
可以帮我把冒号改为tab吗?
作者: Batcher 时间: 2019-5-14 13:40
回复 5# z1366870839 - @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%a in ('type "1.txt"') do (
- set "line=%%a"
- if "!line:~0,1!" equ "[" (
- set /p =%%a <nul
- ) else if "!line:~0,2!" equ "总数" (
- set "line=!line:|= !"
- set "line=!line: =!"
- set "line=!line::=!"
- echo,!line!
- )
- ))>"2.txt"
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |