[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 尘丶 于 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 输入错误,请重新输入。)
怎么改,求代码,思路也好。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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. )
复制代码
1

评分人数

TOP

echo 001^|张三^|123451^|¥100>>用户账户.txt
写成 echo 001#张三#123451#¥100>>用户账户.txt 会更好 最好不用|作为分隔符

TOP

回复 2# yangfengoo


     大致懂了,newnum那里怎么会=0,前面设置了num leq 0吗。

TOP

返回列表