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

[文本处理] 求助 字符后添加顺序数字 批处理

本帖最后由 clsall 于 2021-6-19 17:14 编辑

<smilie smilie_category_id="1" title="/ac" display_order="10" display_in_editor="1">
      <image_url>data/assets/smilies/ac.png</image_url>
      <image_url_2x></image_url_2x>
      <smilie_text>/ac</smilie_text>
    </smilie>
        <smilie smilie_category_id="1" title="/ac" display_order="10" display_in_editor="1">
      <image_url>data/assets/smilies/ac.png</image_url>
      <image_url_2x></image_url_2x>
      <smilie_text>/ac</smilie_text>
    </smilie>
        <smilie smilie_category_id="1" title="/ac" display_order="10" display_in_editor="1">
      <image_url>data/assets/smilies/ac.png</image_url>
      <image_url_2x></image_url_2x>
      <smilie_text>/ac</smilie_text>
    </smilie>

文本中所有的/ac后面添加顺序数字,感谢各位 感谢



    <smilie smilie_category_id="1" title="/ac1" display_order="10" display_in_editor="1">
      <image_url>data/assets/smilies/ac1.png</image_url>
      <image_url_2x></image_url_2x>
      <smilie_text>/ac1</smilie_text>
    </smilie>
        <smilie smilie_category_id="1" title="/ac2" display_order="10" display_in_editor="1">
      <image_url>data/assets/smilies/ac2.png</image_url>
      <image_url_2x></image_url_2x>
      <smilie_text>/ac2</smilie_text>
    </smilie>
        <smilie smilie_category_id="1" title="/ac..." display_order="10" display_in_editor="1">
      <image_url>data/assets/smilies/ac....png</image_url>
      <image_url_2x></image_url_2x>
      <smilie_text>/ac...</smilie_text>
    </smilie>

本帖最后由 newswan 于 2021-6-19 19:26 编辑

powershell
  1. $file = "1.txt"
  2. $fc = get-content -raw $file
  3. $i = 0
  4. while ($fc -match '(?s)(<smilie .*?</smilie>)(.*)')
  5. {
  6.     $i++
  7.     $s += $matches[1] -replace "ac",("ac" + [string] $i)
  8.     $fc = $matches[2]
  9. }
  10. $s + $fc | out-file $file
复制代码

TOP

纯批好像也行。将代码和文本文件存为ANSI编码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in (test.txt) do (
  4. set "str=%%a"
  5. if not "!str:<smilie smilie=!"=="!str!" set /a n+=1
  6. for %%i in (!n!) do set "str=!str:/ac=/ac%%i!"&echo,!str!
  7. )
  8. pause
复制代码

TOP

返回列表