找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 30735|回复: 13

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

[复制链接]
发表于 2011-11-4 23:35: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>偶家刻肌刻骨

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

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2011-11-5 02:16:09 | 显示全部楼层
有群里的高手来帮我看下吗
谢谢
发表于 2011-11-5 10:21:56 | 显示全部楼层
你的账号都是中尉级别了,这个应该不难吧。
 楼主| 发表于 2011-11-5 10:48:48 | 显示全部楼层
回复 3# yangfengoo


    你好,很多人这样说我, 其实我不是做技术的!我就是感觉bat可以带来方便!
发表于 2011-11-5 11:42:21 | 显示全部楼层
在每行最后续上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技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-11-5 13:42:38 | 显示全部楼层
回复 5# lvsehuaxue


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

就是说我  把用于随机插入的字符放在一个  名字为1.txt的文本文档里面调用!
发表于 2011-11-5 16:11:09 | 显示全部楼层
呵呵,不是很明白,在HTML中插入“任意字符”的作用,
另外这个“任意字符”是不是得从UNICODE的字符映射表提取(也许是UTF-32等)

评分

参与人数 1PB +3 收起 理由
CrLf + 3 提供参考意见

查看全部评分

 楼主| 发表于 2011-11-5 22:56:10 | 显示全部楼层
回复 7# wc726842270


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

就是说我  把用于随机插入的字符放在一个  名字为1.txt的文本文档里面调用!
 楼主| 发表于 2011-11-7 21:38:29 | 显示全部楼层
没人来帮我一下吗
发表于 2011-11-8 11:53:28 | 显示全部楼层
本帖最后由 lvsehuaxue 于 2011-11-8 11:55 编辑

回复 9# fanfande
你表达的不是很清楚,别人想帮也很难!我猜:你说的是否基本上是把两个文本中的相同行合并成一行?如果是这样,论坛就有现成的代码。
发表于 2011-11-8 11:59:58 | 显示全部楼层
没人来帮我一下吗
fanfande 发表于 2011-11-7 21:38



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

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

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

评分

参与人数 1PB +3 收起 理由
CrLf + 3 同感...

查看全部评分

发表于 2011-11-9 00:01:45 | 显示全部楼层

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

评分

参与人数 4PB +20 技术 +4 收起 理由
zqz0012005 + 20 + 1 谁说没人用JS?这位就是高手
fanfande + 1 谢谢
CrLf + 1 不错,zqz 赞不绝口
wc726842270 + 1 学习

查看全部评分

发表于 2011-11-9 04:25:31 | 显示全部楼层
头一次看见用这种方法调用VBS,看的还是太少了,呵呵
 楼主| 发表于 2011-11-24 11:40:14 | 显示全部楼层
回复 3# yangfengoo


    我只是泡坛子多,但是还是个新手
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 10:00 , Processed in 0.023341 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表