Board logo

标题: [文本处理] 批处理如何将txt文本里的指定字符随机替换成其他指定字符 [打印本页]

作者: bsxwzy    时间: 2012-4-19 12:35     标题: 批处理如何将txt文本里的指定字符随机替换成其他指定字符

本帖最后由 pcl_test 于 2016-7-28 01:19 编辑

比如a.txt文本内容为
"考虑时间的风格_没戏哪款更_地理景观卡拉蜂杰拉德"

把"_"随机替换成"/" "+"  ")"
例1"考虑时间的风格/没戏哪款更+地理景观卡拉蜂杰拉德"
例2 "考虑时间的风格)没戏哪款更/地理景观卡拉蜂杰拉德"


指定a.txt的文件麻烦写一个。另外要是批处理一个文件夹里所有txt文本又怎么写呢。

麻烦高手帮忙写一下了,谢谢啊。
作者: fatcat    时间: 2012-4-19 13:42

  1. @echo off & setlocal enabledelayedexpansion
  2. set "r0=/" & set "r1=+" & set "r2=)"
  3. for /f "tokens=*" %%f in ('dir /b *.txt') do (echo %%f
  4.   > ~tmp (
  5.     for /f "useback delims=" %%l in ("%%f") do (
  6.       (set lin="%%l") & (set lin=!lin:_=" "!) & set "line="
  7.       for %%a in (!lin!) do (
  8.         set "line=!line!%%~a"
  9.         set /a "r=!random! %% 3"
  10.         for %%r in (r!r!) do set "line=!line!!%%r!"
  11.       )
  12.       echo,!line:~0,-1!
  13.   ) )
  14.   copy /y ~tmp "%%f"
  15. )
  16. del ~tmp
复制代码

作者: lvsehuaxue    时间: 2012-4-19 14:35

  1. @echo off&setlocal enabledelayedexpansion
  2. set "str1= /)+"
  3. for /l %%i in (1 1 3) do set .%%i=!str1:~%%i,1!
  4. for %%b in (*.txt) do (
  5.   (for /f "delims=" %%a in (a.txt) do (
  6.      set "str=%%a"
  7.      set "str=!str:_= !"
  8.      for %%i in (!str!) do (
  9.         set /a "var=!random!%%3+1
  10.         call set "str2=!str2!%%i%%.!var!%%"
  11.      )
  12.      echo !str2:~,-1!
  13.      set "str2="
  14.   ))>$
  15.   move $ %%b
  16. )
复制代码





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