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

[文本处理] [已解决]批处理如何按行来随机提取N个生成的结果再放到新的txt里

请教大家一个问题
在文件夹里面有N个文本文档每个txt里面都有很多行网址
想用批处理随机的用法将各自里面的网址随机N条(这个N可以改动)提取出来,并放在同级目录里面生成一个各自对应新的txt!

拿其中一个txt比如叫1.txt里面的内容举例:
1
2
3
4
5
6
7
8
9

需要处理的结果是随机提取N=6个出来放在新的txt命名为1new.txt
比如生成后的新txt是
5
6
1
4
8

文档内其他txt做同样的处理!
1.txt生成对应新的txt为1new.txt
2.txt生成对应新的txt为2new.txt
3.txt生成对应新的txt为3new.txt
......

多谢各位!也是今天下午在浏览贵站论坛时候看到的一个观点,刚好和本身差不多所以提出来,谢谢帮助
1

评分人数

    • batman: 感谢给帖子标题标注[已解决]字样PB + 2

哪位大哥帮忙看一下!

TOP

本帖最后由 batman 于 2012-12-28 17:23 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
  3.   setlocal enabledelayedexpansion
  4.   rem  取得当前文本的总行数n,并将各行随机乱序赋值给变量_!random!_!n!
  5.   for /f "usebackq delims=" %%b in ("%%a") do set /a n+=1&set "_!random!_!n!=%%b"
  6.   rem a的值就是随机取的行数,这里是随机生成的0<并<=n的值
  7.   set /a a=!random!%%n+1
  8.   (for /f "tokens=1* delims==" %%b in ('set _') do (
  9.     set /a m+=1
  10.     if !m! leq !a! echo,%%c
  11.   ))>%%~na_new.txt
  12.   endlocal
  13. )
  14.   
复制代码
1

评分人数

***共同提高***

TOP

回复 3# batman


    谢谢大哥的帮忙

TOP

返回列表