Board logo

标题: [文本处理] 【已解决】批处理怎样通过匹配姓名更改同一行的数字? [打印本页]

作者: 尘丶    时间: 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 编辑
  1. :cunkun
  2. set/p name=请输入你要的存入的账户:
  3. set/p num=请输入你要的存取的金额:
  4. if %num% leq 0 (echo 金额错误,请重新输入。&goto cunkun)
  5. set new_num=0
  6. echo.>tmp.txt
  7. for /f "tokens=1-5 delims=|¥" %%a in (用户账户.txt) do (
  8.   if "%%b"=="%name%" (
  9.        set/a new_num=%%d+%num%
  10.    echo,%%a^|%%b^|%%c^|¥!new_num!
  11.    ) else (
  12.    echo,%%a^|%%b^|%%c^|¥%%d
  13.    )
  14.    )>>tmp.txt
  15. if "%new_num%"=="0" (
  16.    echo,查无此人&goto cunkun
  17.     ) else (
  18. echo,      存入 %name% 现金 %num% 元 成功!
  19.    del 用户账户.txt
  20.    ren tmp.txt 用户账户.txt
  21. )
复制代码

作者: 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