标题: [文本处理] [已解决]批处理如何按行来随机提取N个生成的结果再放到新的txt里 [打印本页]
作者: iambater 时间: 2012-12-27 14:49 标题: [已解决]批处理如何按行来随机提取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
......
多谢各位!也是今天下午在浏览贵站论坛时候看到的一个观点,刚好和本身差不多所以提出来,谢谢帮助
作者: iambater 时间: 2012-12-28 16:36
哪位大哥帮忙看一下!
作者: batman 时间: 2012-12-28 17:11
本帖最后由 batman 于 2012-12-28 17:23 编辑
- @echo off
- for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
- setlocal enabledelayedexpansion
- rem 取得当前文本的总行数n,并将各行随机乱序赋值给变量_!random!_!n!
- for /f "usebackq delims=" %%b in ("%%a") do set /a n+=1&set "_!random!_!n!=%%b"
- rem a的值就是随机取的行数,这里是随机生成的0<并<=n的值
- set /a a=!random!%%n+1
- (for /f "tokens=1* delims==" %%b in ('set _') do (
- set /a m+=1
- if !m! leq !a! echo,%%c
- ))>%%~na_new.txt
- endlocal
- )
-
复制代码
作者: iambater 时间: 2012-12-28 17:33
回复 3# batman
谢谢大哥的帮忙
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |