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

[文本处理] [已解决]请问批处理可以随机扩充让相邻字符不重复吗?

本帖最后由 每天几分 于 2015-4-26 11:17 编辑

500字的txt文本,只有一行,且无重复字。
我想将这500字随机扩充到5万字,但要求相邻的字不能重复(即同字不相邻),且要求每个字出现的次数一样,请问批处理可以实现吗?

js + bat
  1. @if(0)==(0) echo off
  2. CScript -NoLogo -E:JScript %0 <a.txt > b.txt
  3. pause & exit
  4. @end
  5. var arr = WScript.StdIn.Readall().split('');
  6. var i =100, s = "";
  7. while(i--){
  8.    arr.sort(function(){ return 0.5 - Math.random(); });
  9.    arr = s.substr(s.length-1,1) === arr[0] ? arr.reverse() : arr;
  10.    s += arr.join('');
  11. }
  12. WSH.echo(s);
复制代码
1

评分人数

TOP

本帖最后由 pcl_test 于 2015-4-26 11:21 编辑
  1. @echo off 2>nul 3>nul
  2. echo,正在处理……
  3. set /p str=<"测试.txt"
  4. (for /l %%i in (1 1 100)do call :loop %str%)>"结果.txt"
  5. echo,完成!
  6. pause & exit
  7. :loop
  8. setlocal enabledelayedexpansion
  9. set s=
  10. set /p t=<"%temp%\$"
  11. for /l %%a in (0 1 499)do (
  12. set "_!random!!str:~%%a,1!=!str:~%%a,1!"
  13. )
  14. for /f "tokens=1* delims==" %%b in ('set _')do set "s=!s!%%c"
  15. if "!t!" equ "!s:~,1!" goto loop
  16. >"%temp%\$" echo,!s:~-1!
  17. set /p=!s!<nul
  18. goto :eof
复制代码
1

评分人数

TOP

貌似不难,分一百个区间,每个区间五百字,分别乱序,拼接输出

TOP

返回列表