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

[文本处理] 批处理怎样随机组合文本里面每行数字或者汉字?

批处理随即组合文本里面每一行数字或者汉字想用批处理解决下面的数字或者词语组合的问题,但是不知道从哪里下手。

比如说1.txt文本文档里面有
abs1
abs2
abs3
abs4
abs5
abs6
.
.
.
.
absn
这些数字
我想组合成下面这种形式。
abs1_(abs1到absN里面随即一个数字)
abs2_(abs1到absN里面随即一个数字)
abs3_(abs1到absN里面随即一个数字)
abs4_(abs1到absN里面随即一个数字)
.
.
.
absN_(abs1到absN里面随即一个数字)
然后把这些组合出来的数字保持到2.txt文档里面。  就相当于是把每一行的内容都遍历一次与其它行的内容组合成一个新的内容出来。


这个实现之后就是3个数字的组合问题。
abs1_(abs1到absN里面随即一个数字)_(abs1到absN里面随即一个数字)
abs2_(abs1到absN里面随即一个数字)_(abs1到absN里面随即一个数字)
abs3_(abs1到absN里面随即一个数字)_(abs1到absN里面随即一个数字)
abs4_(abs1到absN里面随即一个数字)_(abs1到absN里面随即一个数字)
.
.
.
N_(1到N里面随即一个数字)_(1到N里面随即一个数字).
不知道这样说清楚没有。

上面的abs1、 abs2 、 abs3、 .... absN  只是举例。
有可能是其他字母或者汉字的,比如说
文件夹1
文件夹2
文件夹3
..........
文件夹N
或者是

批处理
批处理论坛
论坛
批处理之家
.........
实用论坛



如果哪位高手编出来上面的代码了 ,请您先自己运行下 看能不能成功。


谢谢您了。。。

.


[ 本帖最后由 kabamei 于 2010-11-24 00:04 编辑 ]

说实话没看懂lz的意思,是不是要求随机排列文本文件的每一行内容?
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.txt) do (
  3.      set my_random=!random!!random!!random!
  4.      set "_str_!my_random!=%%a"
  5.   )
  6. for /f "tokens=2 delims==" %%a in ('set _str_') do (
  7.      echo %%a
  8.   )
  9. pause
复制代码

TOP

  1. @echo off&Setlocal Enabledelayedexpansion
  2. rem 假如组合是1个的话
  3. for /l %%i in (1 1 10) do (
  4.     set /a a=!random!%%10+1
  5.     echo abs%%i_abs!a!>>a.txt
  6.     set _%%i=abs%%i_abs!a!
  7. )
  8. for /l %%a in (1 1 10) do (
  9.     set /a b=!random!%%10+1
  10.     call echo %%_%%a%%_%%_!b!%%
  11. )
  12. pause
复制代码

TOP

我都说了 abs只是举例。

它每行可能是普通的文字。

TOP

回复 4楼 的帖子

请问你所说的数字是否是其对应的行数啊?

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. ::随机组合一文本内的行与列。
  3. ::1到100行以内。若想扩大行数,需修改rda和rdb的set。
  4. ::以下是只提取每行的第一列,可以修改tokens和set提取更多列。
  5. :cc
  6. set va=
  7. set /a rda=%time:~-2,2%+0
  8. for /f "tokens=1  delims= " %%a in ('more +%rda% 通讯录(新).txt') do set va=%%a&goto aa
  9. goto cc
  10. :aa
  11. set vb=
  12. set /a rdb=%time:~-2,2%+0
  13. for /f "tokens=1  delims= " %%a in ('more +%rdb% 通讯录(新).txt') do set vb=%%a&goto bb
  14. goto cc
  15. :bb
  16. echo !va! !vb!
  17. pause>nul
  18. goto cc
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

返回列表