|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление одной предыдущей строки |
|
|
CMD/BAT - [решено] Удаление одной предыдущей строки
|
Старожил Сообщения: 147 |
Здравствуйте! Подскажите пожалуйста как на cmd или powershell реализовать следующее:
В текстовом файле имеем: строка строка set REV=1.1 VER:1.10.50=(значение меняется) строка строка Надо во всём txt файле найти и удалить одну предыдущую строку перед VER:1.10.50=(значение меняется) То есть часть строки постоянна VER:1.10.50= и далее после знака ровно, значения меняются. Другими словами, надо просто удалять одну предыдущую строку, что бы получилось: строка строка VER:1.10.50=(значение меняется) строка строка |
|
Отправлено: 12:59, 15-08-2019 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Freddy1984, давайте начнём как обычно — Вы упакуете файл в архив и приложите к сообщению.
|
Отправлено: 14:44, 15-08-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 147
|
Цитата Iska:
|
|
Последний раз редактировалось Freddy1984, 15-08-2019 в 15:16. Отправлено: 14:58, 15-08-2019 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Freddy1984, так может лучше и искать и удалять именно строку с «SetREV=»?
|
Отправлено: 16:30, 15-08-2019 | #4 |
Старожил Сообщения: 147
|
Цитата Iska:
Во всех остальных случаях эти SetREV= не трогать. Так как в этом же текстовом файле есть и другие позиции, при которых должно быть присутствие SetREV= |
||
Последний раз редактировалось Freddy1984, 15-08-2019 в 17:23. Отправлено: 16:47, 15-08-2019 | #5 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать Freddy1984,
VBS. Путь укажИте свой
FileIn = "Z:\Box_Arc\файл\цель.txt" RegExp = Chr(13) + "?" + Chr(10) + "?" + ".*SetREV=.*" + Chr(13) + "?" + Chr(10) + "?" + "VER:1\.10\.50=" Rep = Chr(13) + Chr(10) + "VER:1.10.50=" With CreateObject("Scripting.FileSystemObject") On Error Resume Next With .OpenTextFile(FileIn, 1) If Err.Number <> 0 Then MsgBox "Error open file " + vbCrLf + vbCrLf + FileIn + vbCrLf + vbCrLf + "Err.Number " + CStr(Err.Number) + vbCrLf + Err.Description WScript.Quit 1 End If InTxt = .ReadAll If Err.Number <> 0 Then MsgBox "Error read file " + vbCrLf + vbCrLf + FileIn + vbCrLf + vbCrLf + "Err.Number " + CStr(Err.Number) + vbCrLf + Err.Description WScript.Quit 1 End If .Close On Error GoTo 0 End With With CreateObject("VBScript.RegExp") .Pattern = RegExp .IgnoreCase = True .Global = True If Not .Test(InTxt) Then MsgBox "no substrings to replace. Reg expression:" + vbCrLf + vbCrLf + """" + RegExp + """" WScript.Quit 1 End If Result = .Replace(InTxt, Rep) End With With .CreateTextFile(FileIn, True) .Write Result .Close End With End With |
------- Отправлено: 17:47, 15-08-2019 | #6 |
Старожил Сообщения: 147
|
Цитата megaloman:
|
|
Отправлено: 17:50, 15-08-2019 | #7 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Freddy1984:
Цитата Freddy1984:
(gc 'цель.txt' -enc utf8 -raw) -replace 'SetREV[^\n]*\n(?=VER:1\.10\.50=)'| out-file 'результат.txt' -enc utf8 |
||
------- Последний раз редактировалось YuS_2, 17-08-2019 в 21:51. Отправлено: 19:29, 15-08-2019 | #8 |
Забанен Сообщения: 793
|
|
Отправлено: 21:33, 15-08-2019 | #9 |
Старожил Сообщения: 147
|
Цитата YuS_2:
|
|
Отправлено: 23:40, 15-08-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
phpQuery парсер одной строки заголовка | Dark_Delphin | Вебмастеру | 1 | 06-10-2018 15:16 | |
Сделать элементы списка одной высоты в пределах каждой строки | Мамелюк | Вебмастеру | 0 | 25-11-2015 19:17 | |
MSFT SQL Server - Как перенести строки из одной базы в другую sql server 2008 r2 | Order | Программирование и базы данных | 4 | 04-02-2015 11:00 | |
[решено] Разбить данные одной строки по полям формы | support23 | AutoIt | 5 | 19-09-2012 15:18 | |
CMD/BAT - Поиск слова в тексте, удаление строки, удаление 8 строк выше и 3 строк ниже | Alk-13 | Скриптовые языки администрирования Windows | 0 | 10-02-2012 18:06 |
|