|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Bat-ник создания текстовика |
|
CMD/BAT - Bat-ник создания текстовика
|
Новый участник Сообщения: 7 |
Здравствуйте нужна помощь. Стоит такая задача:
Есть база с данными (текстовой файл) в ней 200к строк ( к примеру), нужно из этой базы создать 200 текстовых, в каждом из которых будет 1к строк. Текстовики должны нумероватся мол 1.txt, 2.txt и так до 200. |
|
Отправлено: 22:50, 17-09-2016 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать hancogruss, точно по 1024 строки?
|
Отправлено: 23:19, 17-09-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 23:30, 17-09-2016 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать В программировании указанный суффикс всегда означает 2^10.
Пакетный файл — в общем-то, не самое удобное средство для указанной задачи. Попробуйте PowerShell: Скрытый текст
$iCount = 1024 $sSourceFile = 'C:\Мои проекты\0008\текстовой файл.txt' $sDestFilePath = 'C:\Мои проекты\0008' $sContent = Get-Content -Path $sSourceFile $iParts = [System.Math]::Truncate(([System.Array]$sContent).Length / $iCount + 1) $iStartFrom = 0 for($i = 1; $i -le $iParts; $i++) { $sContent[$iStartFrom..$($iStartFrom + $iCount - 1)] | Set-Content -Path $($sDestFilePath + "\$i.txt") $iStartFrom += $iCount } |
Отправлено: 01:48, 18-09-2016 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать hancogruss,
Будьте внимательны! Основной файл будет удален, поэтому сделайте его копию в отдельную папку. Во всех файлах будет по 1024 (или задайте свое) строки, кроме возможно последнего, уж сколько ему останется: @echo off set "chs=1024" set "f=file"& set "rf=txt" :l set/a b+=1 setlocal enabledelayedexpansion <"%f%%a%.%rf%">nul find/v "" || (del "%f%%a%.%rf%"& goto :eof) <"%f%%a%.%rf%">"%b%.%rf%" (for /f "delims=" %%a in ('more') do @set/a c+=1& if !c! leq %chs% echo %%a) <"%f%%a%.%rf%">"%f%%b%.%rf%" (more +%chs%)& del "%f%%a%.%rf%" endlocal set/a a+=1& goto l exit/b |
|
Отправлено: 05:14, 18-09-2016 | #5 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Вот вариант батника. Исходный файл сохраняется. Для выходных файлов организуется папка.
@Echo Off Set "InFile=D:\Delete\Box_In\baza.txt" Set "OutDir=D:\Delete\Box_Out" Set "OutExt=txt" Set /A Quota=1024 Md "%OutDir%" 2>nul Del "%OutDir%\*.%OutExt%" 2>nul Set /A Count=0 FOR /F "usebackq delims=" %%s IN (`type "%InFile%" 2^>nul`) DO Call :FCount "%%s" GoTo :Eof :FCount Set /A NewFile=%Count%/%Quota%+1 Set /A Count+=1 Set NewFile=%OutDir%\%NewFile%.%OutExt% >>"%NewFile%" Echo %~1 alpap, Удаление исходного файла противоречит моим моральным принципам. |
------- Последний раз редактировалось megaloman, 18-09-2016 в 10:10. Отправлено: 08:41, 18-09-2016 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 01:19, 19-09-2016 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Bat'ник, который создает bat'ник и RDP | ivanxam | Скриптовые языки администрирования Windows | 1 | 22-01-2016 14:10 | |
CMD/BAT - [решено] Помогите написать Bat-ник | vacs8 | Тест-форум | 1 | 23-01-2014 12:49 | |
Разное - [решено] Переделайте c++ в bat-ник | VokaMut | Программирование и базы данных | 5 | 10-08-2011 18:08 | |
Разное - BAT'ник чтобы убить висту. | Alex-4u | Microsoft Windows Vista | 1 | 19-04-2010 12:07 | |
bat'ник | mikola1983 | Хочу все знать | 10 | 03-08-2007 10:46 |
|