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

[文本处理] 【已解决】批处理如何替换/修改文本中指定位置的字符?

本帖最后由 popelrain 于 2016-5-19 21:10 编辑

ABTC     10  CM  JMK     2     -20.348
ABTC     11  CO  JMK     2     -20.569
ABTC     12  C    JMK     3     -20.742
ABTC     13  CF  ABC     3     -20.575
ABTC     14  CA  ABC     3     -20.769
ABTC     15  CF  YUC     4     -20.525
ABTC     16  CA  YUC     4     -20.729

文本里很多行这样的数据,
1、我想在JMK、ABC和YUC后面加上一列字母A,A前面有1个空格。
2、变完后每行的字符数和之前还是一样的,相当于字母A只是替换了JMK、ABC和YUC后面的第2个空格。

变成:
ABTC     10  CM  JMK A  2     -20.348
ABTC     11  CO  JMK A  2     -20.569
ABTC     12  C    JMK A  3     -20.742
ABTC     13  CF  ABC A  3     -20.575
ABTC     14  CA  ABC A  3     -20.769
ABTC     15  CF  YUC A  4     -20.525
ABTC     16  CA  YUC A  4     -20.729

这个如何通过批处理实现的,请教大神!
2

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
    • pcl_test: 勿发笼统的标题PB -6

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('type "1.txt"') do (
  4.     set "OldStr=%%i"
  5.     set "NewStr=!OldStr:~0,20! A !OldStr:~23!"
  6.     echo !NewStr!
  7. ))>2.txt
复制代码
1

评分人数

Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

举个栗子
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('more +7 "%~f0"') do (
  3. set "str=%%a"
  4. for %%b in (JMK ABC YUC) do set "str=!str: %%b  = %%b A!"
  5. echo;!str!
  6. )
  7. pause
  8. ABTC     12  C    JMK     3     -20.742
  9. ABTC     13  CF  ABC     3     -20.575
  10. ABTC     16  CA  YUC     4     -20.729
复制代码
1

评分人数

TOP

回复 2# gawk

大神!膜拜!谢谢!!

TOP

回复 3# pcl_test


  非常感谢!

TOP

问题已解决!谢谢各位!

TOP

返回列表