标题: [文本处理] [已解决]批处理怎样在文本中插入随机字符? [打印本页]
作者: 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个随机组合。- @echo off&setlocal enabledelayedexpansion
- set "str=abcdefghijklmnopqrstuvwxyz"
- for /f "delims=" %%i in (a.txt) do (
- for /l %%a in (1 1 5) do (
- set /a v=!random!%%26
- if not defined %%i set /p=%%i<nul&set %%i==
- call set /p v1=%%str:~!v!,1%%<nul
- )
- echo.
- )
- 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
- @set @n=5//&set @n=5&set/p@n=字符个数:&cscript.exe -e:jscript "%~f0"&exit/b
-
- f="a.htm";
- //num=@n; //num=5;
- num=new ActiveXObject('WScript.Shell').ExpandEnvironmentStrings("%@n%");
-
- chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- chars+=chars.toLowerCase();
- sc=new ActiveXObject("ScriptControl");
- sc.Language="VBScript";
- 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");
- chars+=sc.Eval('CharsGB2312()');
- len=chars.length;
- function RandomChars(n){var s='';for(var i=0;i<n;i++)s+=chars.substr(parseInt(Math.random()*len),1);return s;}
- fso=new ActiveXObject('Scripting.FileSystemObject');
- s=fso.OpenTextFile(f).ReadAll();
- s=s.replace(/<\/a>/gm, function(s){return s+RandomChars(num);});
- 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 |