标题: [文本处理] 批处理如何不断随机取n个txt文本另存? [打印本页]
作者: hkldd 时间: 2015-6-14 11:33 标题: 批处理如何不断随机取n个txt文本另存?
我有一个文件夹中有几千个数据采样的txt,我想随机不断的提取40个txt文本另存为一个文件夹,随机提取的文本可部分重复,但不能完全重复,毎个另存的文件夹名可按数字顺序排列,麻烦大家了,谢谢!
作者: bailong360 时间: 2015-6-15 23:00
- @echo off
- setlocal enabledelayedexpansion
- :loop
- set /a folder+=1
- md folder
- for /f "delims=" %%i in ('dir /b *.txt') do (
- set /a n+=1
- set "#!n!=%%~fi"
- )
- for /l %%i in (1 1 40) do (
- set /a num=!random!%%n+1
- for %%j in (!num!) do copy "!#%%j!" ".\!folder!"
- )
- ping -n 5 localhost>nul
- rem 大概延时5s
- rem 如果系统为win7以上可以用 timeout /t 5代替之
- goto loop
复制代码
作者: hkldd 时间: 2015-6-19 00:17
bailong360 你好!
我的系统是win7-64,运行过程只产生了一个folder空文件夹,然后就是数字顺序的文件,并且提示文件夹或子文件存在,麻烦你看一下,谢谢!
作者: xxpinqz 时间: 2015-6-22 14:05
- @echo off&setlocal enabledelayedexpansion
- dir /b /s *.txt>$
- for /f "tokens=2 delims=:" %%a in ('find /c /v "" $') do set/al=%%a
- :loop
- set/an+=1
- set str=
- title copy number !n!
- md !n! 2>nul
- for /l %%a in (1,1,40) do (
- set/a s=!random!%%l+1
- set "str=!str!!s!: "
- )
- for /f "tokens=1* delims=:" %%a in ('findstr /n . $^|findstr /b "!str!"') do copy "%%b" ".\!n!"
- ping -n 5 localhost>nul
- goto loop
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |