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

[文本处理] [已解决]批处理怎样在文本中插入随机字符?

本帖最后由 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>偶家刻肌刻骨

随机字符可以是汉字也可以说数字反正是任意的组合!
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2
有创新,多创新;无创新,多模仿;无模仿,多坚持

回复 3# yangfengoo


    我只是泡坛子多,但是还是个新手
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

头一次看见用这种方法调用VBS,看的还是太少了,呵呵
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

  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);
复制代码
4

评分人数

TOP

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



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

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

  不好意思,在下等:智商有限,无法达到肚子里的蛔虫的地步
1

评分人数

    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

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

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

TOP

没人来帮我一下吗
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

回复 7# wc726842270


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

就是说我  把用于随机插入的字符放在一个  名字为1.txt的文本文档里面调用!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

呵呵,不是很明白,在HTML中插入“任意字符”的作用,
另外这个“任意字符”是不是得从UNICODE的字符映射表提取(也许是UTF-32等)
1

评分人数

    • CrLf: 提供参考意见PB + 3
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

回复 5# lvsehuaxue


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

就是说我  把用于随机插入的字符放在一个  名字为1.txt的文本文档里面调用!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

在每行最后续上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
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

回复 3# yangfengoo


    你好,很多人这样说我, 其实我不是做技术的!我就是感觉bat可以带来方便!
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

你的账号都是中尉级别了,这个应该不难吧。

TOP

有群里的高手来帮我看下吗
谢谢
有创新,多创新;无创新,多模仿;无模仿,多坚持

TOP

返回列表