找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22472|回复: 3

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

[复制链接]
发表于 2012-12-27 14:49:51 | 显示全部楼层 |阅读模式
请教大家一个问题
在文件夹里面有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
......

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

评分

参与人数 1PB +2 收起 理由
batman + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2012-12-28 16:36:47 | 显示全部楼层
哪位大哥帮忙看一下!
发表于 2012-12-28 17:11:51 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-12-28 17:33:04 | 显示全部楼层
回复 3# batman


    谢谢大哥的帮忙
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 20:31 , Processed in 0.021761 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表