Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


Цитата 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
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:17, 29-02-2016 | #7