标题: [文本处理] [已解决]批处理如何随机提取文本? [打印本页]
作者: fanfande 时间: 2011-11-24 17:18 标题: [已解决]批处理如何随机提取文本?
本帖最后由 fanfande 于 2011-11-26 17:45 编辑
A文件夹内有5个txt
B文件夹内有10个txt
批处理的要求是
从A里面随机取出N个txt (最好N可以提示手动输入 set /p)
从B里面随机取出M个txt (最好N可以提示手动输入 set /p)
然后将它们copy到C文件夹内 (是copy而不是剪切,也就是说处理好了后,A和B里面的txt还是原来的)
作者: awk 时间: 2011-11-24 23:17
文件名有规律吗?
作者: fanfande 时间: 2011-11-25 00:45
回复 2# awk
您好,文件名没有规律就是txt
就好比2个桶里装的豆子
随机从每个桶里面拿出来一点然后一起放到C桶里面!
不愿意的就是ab两桶文件数目最后不变!是copy 不是 剪切!
作者: powerbat 时间: 2011-11-26 00:17
- @echo off
- set FolderA=A
- set FolderB=B
- set FolderC=C
- set /a a=2, b=3
- set /p a=从%FolderA%中取出多少个文件:
- set /p b=从%FolderB%中取出多少个文件:
- echo 从%FolderA%中取出%a%个,从%FolderB%中取出%b%个
- pause
- setlocal enableDelayedExpansion
- set n=0
- for %%a in ("%FolderA%\*") do set "a_!random!_!n!=%%a"&set /a n+=1
- set n=0
- for %%a in ("%FolderB%\*") do set "b_!random!_!n!=%%a"&set /a n+=1
- set n=0
- for /f "tokens=1* delims==" %%a in ('set a_') do (
- if !n! geq %a% goto done1
- copy "%%b" "%FolderC%"
- set /a n+=1
- )
- :done1
- set n=0
- for /f "tokens=1* delims==" %%a in ('set b_') do (
- if !n! geq %b% goto done2
- copy "%%b" "%FolderC%"
- set /a n+=1
- )
- :done2
- echo;&echo 完成.&echo;
- pause
复制代码
作者: fanfande 时间: 2011-11-26 17:45
回复 4# powerbat
谢谢!我几个问题都是你最终解决的!佩服
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |