![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Циклическое повторение данных в файле |
|
|
CMD/BAT - [решено] Циклическое повторение данных в файле
|
Старожил Сообщения: 170 |
Здравствуйте.
Помогите создать скрипт или батник. ...что требуется? есть файл "A" размером, допустим, 208байт, нужно создать файл "B", гораздо большего размера, например 127139792байта , циклично заполненного содержимым из файла "A" т.е. проще говоря повторить файл "A" 611249 раз в файле "B". Подкиньте идею) Всю голову сломал |
|
Отправлено: 18:33, 17-01-2019 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать
Сразу говорю, что этот подход категорически не эффективен — заморитесь ждать Ваших 127,139,792 результирующих байт. Но заниматься
|
Отправлено: 19:23, 17-01-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 170
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 19:36, 17-01-2019 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Profile:
|
|
Отправлено: 20:14, 17-01-2019 | #4 |
Старожил Сообщения: 170
|
Профиль | Отправить PM | Цитировать Цитата alpap:
но как его заполнить файлом A?) |
||
Отправлено: 20:53, 17-01-2019 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Profile:
На WSH: Скрытый текст
Option Explicit Dim strSourceFile Dim strDestFile Dim strContent Dim i strSourceFile = "C:\Мои проекты\0238\a.txt" strDestFile = "C:\Мои проекты\0238\b.txt" With WScript.CreateObject("Scripting.FileSystemObject") If .FileExists(strSourceFile) Then With .OpenTextFile(strSourceFile) strContent = .ReadAll() .Close End With With .CreateTextFile(strDestFile, True) For i = 1 To 611249 .Write strContent Next .Close End With Else WScript.Echo "Can't find source file [" & strSourceFile & "]." WScript.Quit 1 End If End With WScript.Quit 0 |
|
Последний раз редактировалось Iska, 17-01-2019 в 23:02. Причина: Грубая описка Отправлено: 21:52, 17-01-2019 | #6 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата Iska:
$cnt = 611249 $tmp = [io.file]::readalltext('a.txt',[text.encoding]::getencoding("windows-1251")) #вариант для версии PoSh 3.0 и выше: #$tmp = gc a.txt -raw -enc default $str = new-object text.stringbuilder for ($i = 0; $i -le $cnt; $i++){ $null = $str.append($tmp) } $str.tostring()|sc b.txt -enc default первичный запуск: TotalSeconds : 16,5885417 повторный: TotalSeconds : 5,4562804 конечно, скорость от железа может зависеть, но вполне приемлемое время, имхо. |
|
------- Последний раз редактировалось YuS_2, 18-01-2019 в 10:27. Отправлено: 22:28, 17-01-2019 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать YuS_2, я бы всё-таки вынес [io.file]::readalltext('a.txt') за пределы цикла. Понятно, что по сути повторное чтение будет идти из кэша, но всё же, всё же, всё же…
Цитата YuS_2:
На мой взгляд, здесь лучше зараз писать в файл: конкатенация строк очень ресурсоёмкая операция. |
|
Отправлено: 23:00, 17-01-2019 | #8 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
|
|
Отправлено: 23:33, 17-01-2019 | #9 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Busla:
Скрытый текст
Составили программку: тысячи циклов, включающих конструкция типа:
ЦИКЛ ... ГДЕ A=3 ГДЕ B=5 ... КОНЦИКЛ Чуем — что-то долго считает... Остановили, пустили на дальнейшее пошаговое исполнение с распечаткой каждого шага. Сначала ошалели, потом долго смеялись: 50% распечатки заняли строки A=3 B=5 Ну заменили эти "ГДЕ" на константы, определив их перед циклом — и сразу программа задышала. ![]() |
|
------- Отправлено: 00:26, 18-01-2019 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Повторение двух и более команд | ymo_4@vk | Скриптовые языки администрирования Windows | 1 | 01-12-2017 08:35 | |
Разное - [решено] Словари иностранных слов в текстовом файле, или в базе данных. | amask | Программирование и базы данных | 1 | 29-09-2016 20:37 | |
PowerShell - [решено] Переменные из данных в txt файле | breakfruit | Скриптовые языки администрирования Windows | 25 | 05-06-2015 17:10 | |
Java - Сохранение введённых данных в отдельном файле | mephistophel | Программирование и базы данных | 6 | 03-05-2012 21:41 | |
C/C++ - [решено] Поиск данных в файле | Luzuk | Программирование и базы данных | 5 | 05-11-2008 04:04 |
|