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

[文本处理] 批处理选择文本某一行修改,第二次替换会发生异常

  1. @echo on
  2. set "Ymd=%date:~0,10%_%time:~0,2%:%time:~3,2%"
  3. echo 【====================================================================】
  4. echo 【========== 》工具箱《  =============================================】
  5. echo 【========== @幻羽出品 ===============================================】
  6. echo 【========== #创建时间:2018-11-06 ===================================】
  7. echo 【========== #当前时间:%Ymd% =============================】
  8. echo 【====================================================================】
  9. setlocal enabledelayedexpansion
  10. title 》》档案《《 &color 0a
  11. echo.
  12. set /p r1="【输入姓名】:"
  13. cd [04_%r1%=更多相关]/【01_%r1%=档案】
  14. cls &color f1
  15. :aa
  16. echo.
  17. echo 【打开 %r1%_档案=简介】
  18. echo 【====================================================================】
  19. type "%r1%_档案=简介".txt
  20. echo.
  21. echo 【====================================================================】
  22. echo 【以上为该文本内容】
  23. echo.
  24. set /p a1="【是否修改内容?(y=1/n=0)】:"
  25. echo.
  26. if %a1%==1 cls & goto a1
  27. goto a0
  28. :a1
  29. echo.
  30. echo 【正在编译: %r1%_档案=简介】
  31. echo 【====================================================================】
  32. type "%r1%_档案=简介".txt
  33. echo.
  34. echo 【====================================================================】
  35. echo.
  36. set /p r2="【请选择编译的行数:】:"
  37. if %r2%==0 set /p mingzi="【输入更改姓名】:"& goto cc2
  38. if %r2%==1 set "r3=【=1=姓名】:" & goto cc
  39. if %r2%==2 set "r3=【=2=性别】:" & goto cc
  40. if %r2%==3 set "r3=【=3=生日】:" & goto cc
  41. if %r2%==4 set "r3=【=4=初始关系】:" & goto cc
  42. if %r2%==5 set "r3=【=5=初识印象】:" & goto cc
  43. if %r2%==6 set "r3=【=6=其他介绍】:" & goto cc
  44. if %r2%==6 set "r3=【=7=散碎信息】:" & goto cc
  45. echo 输入错误,点击重选&pause>nul&cls& goto a1
  46. :cc
  47. set /p ee="【修改为】:"
  48. echo 【====================================================================】
  49. set/a r4=%r2%+2
  50. for %%a in (%r4%) do set %%a=1
  51. for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%r1%_档案=简介.txt"') do (
  52. if defined %%a (echo;%r3% %ee%) else echo;%%b)>>a.txt
  53. rem type "a.txt">"流云_档案=简介.txt"
  54. move a.txt "%r1%_档案=简介".txt >nul
  55. set "r4="
  56. goto cc3
  57. :cc2
  58. set/a r4=1
  59. set "r0=【==%mingzi%的简介==】"
  60. echo 【====================================================================】
  61. for %%d in (%r4%) do set %%d=1
  62. for /f "tokens=1* delims=:" %%d in ('findstr /n .* "%r1%_档案=简介.txt"') do (
  63. if defined %%d (echo;%r0%) else echo;%%b)>>b.txt
  64. rem type "a.txt">"流云_档案=简介.txt"
  65. move b.txt "%r1%_档案=简介".txt >nul
  66. set "r4="
  67. :cc3
  68. echo 【正在修改。】
  69. rem echo ┌─────────────────────────────────────────────────────────────┐
  70. rem set /p= │<nul
  71. rem for /L %%i in (1 1 28) do set /p a=■<nul&ping /n 1 127.0.0.1>nul
  72. rem echo 100%%│
  73. rem echo └─────────────────────────────────────────────────────────────┘
  74. echo 【修改完毕!】
  75. rem echo 【====================================================================】
  76. rem for /l %%z in (1,1,1000) do echo %%z>nul
  77. echo 【点击继续】  
  78. pause>nul
  79. cls &color f1
  80. goto aa
  81. rem 【添加时间:2018-11-11============================================】
  82. :a0
  83. pause>nul
复制代码
第二次替换会把第一次替换位置也替换掉,出现两行重复

初始模样

第二次修改,会发生覆盖第一次修改位置

变量清零计划.
  1. set "%r4%="
  2. set "r4="
复制代码

TOP

返回列表