Board logo

标题: [文本处理] [已解决]批处理怎样在文本中插入随机字符? [打印本页]

作者: fanfande    时间: 2011-11-4 23:35     标题: [已解决]批处理怎样在文本中插入随机字符?

本帖最后由 fanfande 于 2011-11-10 16:08 编辑

文本文档里面都是源代码的形式N条:
大致形式如下:

<a title="google" href="http://www.Google.Cn">google</a>
<a title="sohu" href="http://www.sohu.com">sohu</a>
<a title="163" href="http://www.163.com">163</a>

可以使用批处理的方式,在他们之间插入随机的字符呢,字符的个数可以自定,比如插入5个字符,还是10个字符
变成类似以下形式

<a title="google" href="http://www.Google.Cn">google</a>发达范德萨
<a title="sohu" href="http://www.sohu.com">sohu</a>羊肉汤突然
<a title="163" href="http://www.163.com">163</a>偶家刻肌刻骨

随机字符可以是汉字也可以说数字反正是任意的组合!
作者: fanfande    时间: 2011-11-5 02:16

有群里的高手来帮我看下吗
谢谢
作者: yangfengoo    时间: 2011-11-5 10:21

你的账号都是中尉级别了,这个应该不难吧。
作者: fanfande    时间: 2011-11-5 10:48

回复 3# yangfengoo


    你好,很多人这样说我, 其实我不是做技术的!我就是感觉bat可以带来方便!
作者: lvsehuaxue    时间: 2011-11-5 11:42

在每行最后续上26个小写字母的5个随机组合。
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=abcdefghijklmnopqrstuvwxyz"
  3. for /f "delims=" %%i in (a.txt) do (
  4.     for /l %%a in (1 1 5) do (
  5.         set /a v=!random!%%26
  6.         if not defined %%i set /p=%%i<nul&set %%i==
  7.         call set /p v1=%%str:~!v!,1%%<nul
  8.     )
  9.     echo.   
  10. )
  11. pause
复制代码

作者: fanfande    时间: 2011-11-5 13:42

回复 5# lvsehuaxue


    你好,假如我用另外一个1.txt专门放置用于随机插入的字符的话,怎么弄呢

就是说我  把用于随机插入的字符放在一个  名字为1.txt的文本文档里面调用!
作者: wc726842270    时间: 2011-11-5 16:11

呵呵,不是很明白,在HTML中插入“任意字符”的作用,
另外这个“任意字符”是不是得从UNICODE的字符映射表提取(也许是UTF-32等)
作者: fanfande    时间: 2011-11-5 22:56

回复 7# wc726842270


        你好,假如我用另外一个1.txt专门放置用于随机插入的字符
这些随机字符可以是任意的字或字母或数字!是自己自编的!

就是说我  把用于随机插入的字符放在一个  名字为1.txt的文本文档里面调用!
作者: fanfande    时间: 2011-11-7 21:38

没人来帮我一下吗
作者: lvsehuaxue    时间: 2011-11-8 11:53

本帖最后由 lvsehuaxue 于 2011-11-8 11:55 编辑

回复 9# fanfande
你表达的不是很清楚,别人想帮也很难!我猜:你说的是否基本上是把两个文本中的相同行合并成一行?如果是这样,论坛就有现成的代码。
作者: x9tiancmd    时间: 2011-11-8 11:59

没人来帮我一下吗
fanfande 发表于 2011-11-7 21:38



    大家都能帮你, 问题是大家都怕好心帮忙做坏事.

 你总要告诉我们,你这么做的意途是什么吧.  

  不好意思,在下等:智商有限,无法达到肚子里的蛔虫的地步
作者: powerbat    时间: 2011-11-9 00:01

  1. @set @n=5//&set @n=5&set/p@n=字符个数:&cscript.exe -e:jscript "%~f0"&exit/b
  2. f="a.htm";
  3. //num=@n; //num=5;
  4. num=new ActiveXObject('WScript.Shell').ExpandEnvironmentStrings("%@n%");
  5. chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  6. chars+=chars.toLowerCase();
  7. sc=new ActiveXObject("ScriptControl");
  8. sc.Language="VBScript";
  9. sc.AddCode("function CharsGB2312() : dim high, low, s : for high=&HB0 to &HF7 : for low=&HA1 to &HFE : s = s & Chr(high*2^8 + low) : next : next : CharsGB2312 = s : end function");
  10. chars+=sc.Eval('CharsGB2312()');
  11. len=chars.length;
  12. function RandomChars(n){var s='';for(var i=0;i<n;i++)s+=chars.substr(parseInt(Math.random()*len),1);return s;}
  13. fso=new ActiveXObject('Scripting.FileSystemObject');
  14. s=fso.OpenTextFile(f).ReadAll();
  15. s=s.replace(/<\/a>/gm, function(s){return s+RandomChars(num);});
  16. fso.OpenTextFile('~'+f, 2, true).Write(s);
复制代码

作者: wc726842270    时间: 2011-11-9 04:25

头一次看见用这种方法调用VBS,看的还是太少了,呵呵
作者: fanfande    时间: 2011-11-24 11:40

回复 3# yangfengoo


    我只是泡坛子多,但是还是个新手




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