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

[文本处理] [已解决]批处理如何根据输入的字符串查找并替换文本里含有该字符串的行中的特定内容

本帖最后由 pcl_test 于 2016-8-6 10:21 编辑

通訊錄如此格式的txt : 賬號號碼(AA 1111) 姓名 電話1 電話2
AA 1352 陳一 134xxxxxxxx 136xxxxxxxx
AA 2124 張二 135xxxxxxxx 137xxxxxxxx
AB 3712 關三 136xxxxxxxx 138xxxxxxxx

賬號號碼 數字是不重複,唯一的
比如陳一(1352)換了電話,請問老師怎麽輸入賬號碼進行修改電話1或2?
1

评分人数

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

  1. @Echo Off
  2. Set /P Old=Old Number:
  3. Set /P New=New Number:
  4. sed -i "s/%Old%/%New%/g" number.txt
复制代码
需要第三方sed,下載地址論壇裏面有

TOP

本帖最后由 pcl_test 于 2016-8-6 10:16 编辑

回复 1# patrickju
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p zh=请输入账户号码(如AA 1352):
  4. findstr /c:"%zh%" "test.txt">nul&&goto main||echo 没有找到相应的账号!&pause&exit
  5. :main
  6. for /f "tokens=1-5" %%a in ('type "test.txt"') do (
  7.     if /i "%%a %%b" neq "%zh%" (
  8.         >>$ echo %%a %%b %%c %%d %%e
  9.     ) else (
  10.         set /p n=请选择要替换的电话序号(1或是2):
  11.         set /p number=请输入新的电话号码:
  12.         if "!n!" == "1" (>>$ echo %%a %%b %%c !number! %%e) else (
  13.             if "!n!" == "2" (>>$ echo %%a %%b %%c %%d !number!) else echo 无效数字&pause&exit
  14.         )
  15.     )
  16. )
  17. move $ "test.txt"
  18. pause
复制代码
2

评分人数

TOP

学习中~~学习中~~

TOP

回复 3# pcl_test

謝謝老師

TOP

返回列表