标题: [文本处理] 【已解决】批处理怎样通过匹配姓名更改同一行的数字? [打印本页]
作者: 尘丶 时间: 2015-5-24 19:52 标题: 【已解决】批处理怎样通过匹配姓名更改同一行的数字?
本帖最后由 尘丶 于 2015-5-26 16:33 编辑
if not "%a%"=="%b%" (echo 卡号^|用户账户^|密码^|当前余额>用户账户.txt
echo 001^|张三^|123451^|¥100>>用户账户.txt
echo 002^|李四^|123452^|¥500>>用户账户.txt
echo 003^|王五^|123453^|¥1000>>用户账户.txt
echo 004^|黄六^|123454^|¥1000>>用户账户.txt
echo 005^|刘七^|123455^|¥2100>>用户账户.txt
echo 006^|陈八^|123456^|¥400>>用户账户.txt
echo 007^|郑九^|123457^|¥200>>用户账户.txt
echo 008^|张五^|123458^|¥1500>>用户账户.txt
echo 009^|郑一^|123459^|¥1800>>用户账户.txt
echo 010^|张十^|123450^|¥5100>>用户账户.txt)
:cunkun
set/p num=请输入你要的存取的金额:
if "%num%" geq 0 (echo 存取成功,)
for /f "tokens=1-2,4 delims=|" %%c in (用户账户.txt) do (
用for读取用户账户这个文档,通过匹配的账户,找到对应的金额,然后当前余额加上%num%比如张三)
if not "%num%" geq 0 (echo 输入错误,请重新输入。)
怎么改,求代码,思路也好。
作者: yangfengoo 时间: 2015-5-24 21:13
本帖最后由 yangfengoo 于 2015-5-25 15:47 编辑
- :cunkun
- set/p name=请输入你要的存入的账户:
- set/p num=请输入你要的存取的金额:
- if %num% leq 0 (echo 金额错误,请重新输入。&goto cunkun)
- set new_num=0
- echo.>tmp.txt
- for /f "tokens=1-5 delims=|¥" %%a in (用户账户.txt) do (
- if "%%b"=="%name%" (
- set/a new_num=%%d+%num%
- echo,%%a^|%%b^|%%c^|¥!new_num!
- ) else (
- echo,%%a^|%%b^|%%c^|¥%%d
- )
- )>>tmp.txt
- if "%new_num%"=="0" (
- echo,查无此人&goto cunkun
- ) else (
- echo, 存入 %name% 现金 %num% 元 成功!
- del 用户账户.txt
- ren tmp.txt 用户账户.txt
- )
复制代码
作者: yangfengoo 时间: 2015-5-24 21:17
echo 001^|张三^|123451^|¥100>>用户账户.txt
写成 echo 001#张三#123451#¥100>>用户账户.txt 会更好 最好不用|作为分隔符
作者: 尘丶 时间: 2015-5-26 16:32
回复 2# yangfengoo
大致懂了,newnum那里怎么会=0,前面设置了num leq 0吗。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |