标题: [文本处理] 【已解决】替换文本指定行指定位置的内容(某行某个字段)? [打印本页]
作者: qq692172929 时间: 2016-3-26 00:49 标题: 【已解决】替换文本指定行指定位置的内容(某行某个字段)?
本帖最后由 qq692172929 于 2016-3-30 01:54 编辑
自动生成data.db 例子
例如需要修改data.db 里面的第996行的 第五列 为 原来的值减一 其他内容不动。
代码:- echo off&color a&cls
- setlocal EnableDelayedExpansion
- set kj01=echo.---------------------------------------
- set lj=data.db
- title ,
-
- if exist %lj% goto :zcx
- echo 数据库规则以 空格 分列 已知最高支持26列,当前本程序已完成7列
- echo.&echo.&echo.快速插入一万条记录
- for /l %%i in (1,1,10000) do (
- echo %%i !random! !random! !random! !random! !random! !random! >>%lj%
- )
- :zcx
- ::::::::::::::::::::计算行数::::::::::::::::::::
- set /p list=请输入操作ID^>
- echo.数据库建立于:%date% %itme% >db.tmp
- for /f "delims=*" %%z in (%lj%) do (
- cls
- set /a aa+=1
- :::echo 读出来的内容是: %%z
- for /f "tokens=1-7" %%a in ("%%z") do (
- set list1=%%a
- set list2=%%b
- set list3=%%c
- set list4=%%d
- set list5=%%e
- set list6=%%f
- set list7=%%g
- echo.正在查找数据...
- )
- echo.####:!aa!
- :::::取到数据后操作。操作完毕后返回继续执行剩下的数据库。
- if "!list!"=="!list1!" call :ssok
- echo.!list1! !list2! !list3! !list4! !list5! !list6! !list7! >>db.tmp
- )
- del /s/q %lj%
- ren db.tmp %lj%
- echo ##记录共计: %aa% 行
-
- pause
- exit
-
- :ssok
- cls
- echo.&echo.&echo.
- echo. 客户ID:%list1%
- %kj01%
- echo. 客户姓名:%list2%
- %kj01%
- echo. 项目名称:%list3%
- %kj01%
- echo. 项目总数:%list4%
- %kj01%
- echo. 项目剩余:%list5%
- %kj01%
- echo. 上次消费:%list6%
- %kj01%
- echo. 录入时间:%list7%
- %kj01%
- echo 记录储存于第:%aa% 行
- %kj01%
- %kj01%
- set /a list5-=1
- pause
- goto :EOF
复制代码
读出数据并存了变量。可是怎么修改数据 然后储存到原来的位置呢?
本帖仅用于有规定规律列的,列数可以修改。本帖仅供参考。
作者: happy886rr 时间: 2016-3-26 11:56
- @echo off&setlocal enabledelayedexpansion
- (for /f "tokens=1-7" %%a in ('type db.txt') do (if %%a equ 996 (set ts=16) else (set ts=%%e)
- echo %%a %%b %%c %%d !ts! %%f %%g
- ))>new.txt
复制代码
回复 1# qq692172929
作者: qq692172929 时间: 2016-3-26 13:27
回复 2# happy886rr
我现在是读到了,每个字段, 问题是我修改后怎么储存会去。
作者: qq692172929 时间: 2016-3-26 13:28
@pcl_test
请教,为何是 没按版规发帖了?我这不属于求助帖?
作者: qq692172929 时间: 2016-3-26 13:34
回复 qq692172929
happy886rr 发表于 2016-3-26 11:56
你的意思是边读边存搜索到记录后 进行操作,操作完成后继续读剩下的数据 然后一并写到新 文本里?
作者: pcl_test 时间: 2016-3-26 14:01
回复 4# qq692172929
原标题太笼统随意;贴出那么长的代码与需求豪不相干,你要把新的需求整合到你原有代码中,就要把完整的需求和效果说清楚;在相应楼层点回复,少引用
作者: qq692172929 时间: 2016-3-30 01:56
干脆点,本帖由提问贴改成实例贴好了。自己解决了。
其次版主的说法俺不服。涉嫌随意扣分。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |