标题: [文本处理] [已解决]请问批处理可以随机扩充让相邻字符不重复吗? [打印本页]
作者: 每天几分 时间: 2015-4-25 21:19 标题: [已解决]请问批处理可以随机扩充让相邻字符不重复吗?
本帖最后由 每天几分 于 2015-4-26 11:17 编辑
500字的txt文本,只有一行,且无重复字。
我想将这500字随机扩充到5万字,但要求相邻的字不能重复(即同字不相邻),且要求每个字出现的次数一样,请问批处理可以实现吗?
作者: CrLf 时间: 2015-4-25 22:15
貌似不难,分一百个区间,每个区间五百字,分别乱序,拼接输出
作者: pcl_test 时间: 2015-4-25 23:10
本帖最后由 pcl_test 于 2015-4-26 11:21 编辑
- @echo off 2>nul 3>nul
- echo,正在处理……
- set /p str=<"测试.txt"
- (for /l %%i in (1 1 100)do call :loop %str%)>"结果.txt"
- echo,完成!
- pause & exit
- :loop
- setlocal enabledelayedexpansion
- set s=
- set /p t=<"%temp%\$"
- for /l %%a in (0 1 499)do (
- set "_!random!!str:~%%a,1!=!str:~%%a,1!"
- )
- for /f "tokens=1* delims==" %%b in ('set _')do set "s=!s!%%c"
- if "!t!" equ "!s:~,1!" goto loop
- >"%temp%\$" echo,!s:~-1!
- set /p=!s!<nul
- goto :eof
复制代码
作者: terse 时间: 2015-4-26 02:01
js + bat- @if(0)==(0) echo off
- CScript -NoLogo -E:JScript %0 <a.txt > b.txt
- pause & exit
- @end
- var arr = WScript.StdIn.Readall().split('');
- var i =100, s = "";
- while(i--){
- arr.sort(function(){ return 0.5 - Math.random(); });
- arr = s.substr(s.length-1,1) === arr[0] ? arr.reverse() : arr;
- s += arr.join('');
- }
- WSH.echo(s);
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |