|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - копировать или вырезать строки в последовательном порядке |
|
|
CMD/BAT - копировать или вырезать строки в последовательном порядке
|
Новый участник Сообщения: 44 |
Профиль | Отправить PM | Цитировать Здравствуйте.
Необходима реализация следующего скрипта: Существует два файла: 1.txt и 2.txt. Нужно из файла 1.txt копировать или вырезать строки в последовательном порядке (сверху в низ) и вставлять их в файл 2.txt вместо пустых строк, но чтобы также последовательно (сверху вниз). В файле 1.txt содержаться подготовленные строки, пустых строк нету. В файле 2.txt находится информация, которая разделена пустыми строками. То есть пошагово процесс происходит следующим образом: Скрипт из файла 1.txt копирует или вырезает первую сверху строку (целиком) и вставляет ее в файл 2.txt вместо первой попавшейся (сверху в низ) пустой строки. Затем возвращается к файлу 1.txt копирует или вырезает следующую строку (если было вырезание, значит следующая строка всегда будет первой) и процесс повторяется до полного завершения. Возможно ли в принципе такое реализовать? Или это всего лишь нереальные мечтания? Заранее благодарен за помощь. |
|
Отправлено: 01:39, 17-03-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Пример покажите: файл 1.txt, файл 2.txt, результирующий файл.
|
Отправлено: 02:45, 17-03-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 161
|
Профиль | Отправить PM | Цитировать temphard, Вам обязательно на cmd/bat?
Вообще - это легко алгоритмизируемая задача, исполняемая на любом языке программирования, в том числе и на vbs. |
Отправлено: 07:55, 17-03-2017 | #3 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата Iska:
В файле 1.txt двенадцать строк, которые необходимо скопировать/вырезать и вставить их в файл 2.txt, в котором кроме прочей информации существует двенадцать пустых строк. В файле 3.txt отображен конечный результат. |
|
Отправлено: 13:08, 17-03-2017 | #4 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата glukin:
|
||
Отправлено: 13:09, 17-03-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата temphard:
|
|
Отправлено: 13:24, 17-03-2017 | #6 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Я имею ввиду, что немного знаком и имею небольшой опыт использования лишь cmd/bat, поэтому предпочитаю этот способ. На мой взгляд cmd/bat легко редактировать и изменять под разные нужды. Если можно по другому, то как именно, легко ли этим пользоваться и что для этого нужно? Спасибо за понимание. |
|
Отправлено: 14:11, 17-03-2017 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать На WSH.
Медленнее, но меньше памяти
Option Explicit Dim strSource1File Dim strSource2File Dim strDestFile Dim objSource1TS Dim objSource2TS Dim objDestTS Dim strSource1Line, strSource2Line strSource1File = "C:\Мои проекты\0052\01.txt" strSource2File = "C:\Мои проекты\0052\02.txt" strDestFile = "C:\Мои проекты\0052\04.txt" With WScript.CreateObject("Scripting.FileSystemObject") Set objSource1TS = .OpenTextFile(strSource1File) Set objSource2TS = .OpenTextFile(strSource2File) Set objDestTS = .CreateTextFile(strDestFile, True) If Not objSource1TS.AtEndOfStream Then strSource1Line = objSource1TS.ReadLine() Else WScript.Quit 1 End If Do If Not objSource2TS.AtEndOfStream Then strSource2Line = objSource2TS.ReadLine() If Len(Trim(strSource2Line)) = 0 Then objDestTS.WriteLine strSource1Line If Not objSource1TS.AtEndOfStream Then strSource1Line = objSource1TS.ReadLine() Else strSource1Line = "" End If Else objDestTS.WriteLine strSource2Line End If Else Exit Do End If Loop objDestTS.Close objSource2TS.Close objSource1TS.Close Set objDestTS = Nothing Set objSource2TS = Nothing Set objSource1TS = Nothing End With WScript.Quit 0 Быстрее, но больше памяти
Option Explicit Dim strSource1File Dim strSource2File Dim strDestFile Dim arrSource1Content Dim arrSource2Content Dim iSource1Count, iSource2Count strSource1File = "C:\Мои проекты\0052\01.txt" strSource2File = "C:\Мои проекты\0052\02.txt" strDestFile = "C:\Мои проекты\0052\04.txt" With WScript.CreateObject("Scripting.FileSystemObject") With .OpenTextFile(strSource1File) arrSource1Content = Split(.ReadAll(), vbCrLf) .Close End With With .OpenTextFile(strSource2File) arrSource2Content = Split(.ReadAll(), vbCrLf) .Close End With iSource2Count = LBound(arrSource2Content) For iSource1Count = LBound(arrSource1Content) To UBound(arrSource1Content) Do If Len(Trim(arrSource2Content(iSource2Count))) = 0 Then arrSource2Content(iSource2Count) = arrSource1Content(iSource1Count) Exit Do End If iSource2Count = iSource2Count + 1 If iSource2Count > UBound(arrSource2Content) Then Exit For End If Loop Next With .CreateTextFile(strDestFile, True) .Write Join(arrSource2Content, vbCrLf) .Close End With End With WScript.Quit 0 Будете проверять на тех образцах, что Вы выложили — имейте в виду, что у Вас там две одиннадцатых строки . |
Отправлено: 14:24, 17-03-2017 | #8 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Я создал текстовый файл, поместил в него скрипт и сохранил с расширением *.vbs - Это правильно? Но главное, что это работает! Удивительно! Оказывается cmd/bat - это всего лишь небольшая часть "вселенной" скриптов. Балгодарю. P.S. Цитата Iska:
|
||
Отправлено: 14:46, 17-03-2017 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:57, 17-03-2017 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интернет - Изменение параметров интернет подключения с командной строки или Powershell | termikx | Скриптовые языки администрирования Windows | 5 | 14-10-2013 15:46 | |
Подскажите пожалуйста какой прогой можно обрезать MP4 или avi видео? Просто вырезать | Igor32123 | Хочу все знать | 16 | 02-04-2013 19:13 | |
CMD/BAT - Ошибка при последовательном запуске нескольких батников | WhiteBear1991 | Скриптовые языки администрирования Windows | 1 | 21-03-2013 00:13 | |
? как из к.строки убить прцесс или закрыть программу | djoniAg | Microsoft Windows 95/98/Me (архив) | 1 | 09-10-2004 19:18 |
|