找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28392|回复: 4

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

[复制链接]
发表于 2015-1-24 21:37:27 | 显示全部楼层 |阅读模式
本帖最后由 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?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-1-24 23:22:29 | 显示全部楼层
  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,下載地址論壇裏面有
发表于 2015-1-24 23:47:53 | 显示全部楼层
本帖最后由 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技术 +2 收起 理由
patrickju + 1 感谢分享
Batcher + 1 乐于助人

查看全部评分

发表于 2015-1-25 01:41:39 | 显示全部楼层
学习中~~学习中~~
 楼主| 发表于 2015-1-25 10:09:35 | 显示全部楼层
回复 3# pcl_test

謝謝老師
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 07:52 , Processed in 0.035503 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表