Board logo

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

作者: patrickju    时间: 2015-1-24 21:37     标题: [已解决]批处理如何根据输入的字符串查找并替换文本里含有该字符串的行中的特定内容

本帖最后由 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?
作者: bailong360    时间: 2015-1-24 23:22

  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,下載地址論壇裏面有
作者: pcl_test    时间: 2015-1-24 23:47

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

作者: wai7ai7    时间: 2015-1-25 01:41

学习中~~学习中~~
作者: patrickju    时间: 2015-1-25 10:09

回复 3# pcl_test

謝謝老師




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2