Цитата krokradio:
Мне же нужно разделение на части. »
|
Ну и? Я ровно про это. Батник разделяет файл на части по количеству строк. Ведь равные части бывают разные, можно файл из 2000 строк и на 2000 частей разбить.
Попробовал файл из 1500 строк разбить на три файла по 500. Все отработало корректно. Файл создал в PowerShell (так проще):
Код:
& {for ($i = 1; $i -le 1500; $i++) { "$('{0:d4}. ' -f $i)$(get-random)" }} | sc test.txt
Он имеет вид:
Код:
0001. 1684051906
0002. 150225868
0003. 538389330
0004. 541472203
...
1500. 233788911
Батник слегка изменил под большее число строк:
Код:
@echo off
setlocal
set cnt=10000
set step=500
for /f "tokens=*" %%i in ('type test.txt') do call:0 "%%i"
for /l %%i in (10001,%step%,%cnt%) do call:1 %%i
goto:eof
:0
....
В результате появилось три файла по 500 строк (0001...0500; 0501...1000; 1001...1500)
Проблема батника при работе с текстом -- есть большая вероятность, что при попадании в раздачу спец.символов (=,&,|,%,>,<) результат может оказаться не тем, который вы ожидаете увидеть. Все это так или иначе решается, но если честно нет особого желания этого делать.
Ну а PowerShell на Win ХР надо ставить дополнительно (будет вторая версия) + Net.Framework. Код, с небольшими изменениями, будет работать:
Код:
param ($count = 10, $root = 'D:\MUSIC')
$plist = get-childitem $root *.mp3 -recurse | get-random -count $count | % { $_.fullname }
$plist