![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - findstr при записи в тот же файл |
|
CMD/BAT - findstr при записи в тот же файл
|
Новый участник Сообщения: 44 |
Мне нужно удалить заданную строку в текстовом файле. Конкретно нужно удалить ай пи и перезаписать файл без данной строки.
Судя по ману команды findstr делается это так: Результат будет вывод файла без искомой строки. Однако, при добавлении кода с записью в тот же самый файл, текст в файле затирается полностью. Батник: Результат: пустой файл test.txt. Что не так делаю? PS А при чем тут единичка? Старый текст темы
Как-то давным давно я уже сталкивался с этой проблемой на семёрке, убил в тот раз целый день и пришлось всё делать через зад. А щас то же самое на ДЕСЯТКЕ!!!
Кто-нибудь мне скажет что тут происходит??? С кодом всё понятно вроде. Здесь командой findstr хочу убрать строку с айпи из файла. Теперь выполняем батник. C:\debug\cmdtest>findstr /I /V "192.168.1.101" test.txt 1>test.txt C:\debug\cmdtest>echo Press any key... Press any key... C:\debug\cmdtest>pause 1>nul В результате он мне затирает текст! Или я отстал от жизни или это фича??? |
|
Отправлено: 18:55, 23-08-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
![]() Цитата YuS_2:
Option Explicit Dim strContent strContent = _ "192.168.1.101" & vbCrLf & _ "192.168.1.98" & vbCrLf & _ "192.168.1.99" & vbCrLf & _ "192.168.1.100" & vbCrLf & _ "192.168.1.101" & vbCrLf & _ "#####192.168.1.101" & vbCrLf & _ "192.168.1.101#####" & vbCrLf & _ "#####192.168.1.101#####" & vbCrLf & _ "192.168.1.102" & vbCrLf & _ "192.168.1.103" & vbCrLf & _ "192.168.1.104" & vbCrLf & _ "192.168.1.101" WScript.Echo _ "--- Before: -----------------------------" & vbCrLf & _ strContent & vbCrLf & _ "-----------------------------------------" & vbCrLf With WScript.CreateObject("VBScript.RegExp") .Pattern = "^.*192\.168\.1\.101.*$\n?" .Global = True .MultiLine = True If .Test(strContent) Then strContent = .Replace(strContent, "") WScript.Echo _ "--- After: ------------------------------" & vbCrLf & _ strContent & vbCrLf & _ "-----------------------------------------" & vbCrLf Else WScript.Echo "Not found pattern [" & .Pattern & "]." End If End With WScript.Quit 0 Скрытый текст
![]() Цитата YuS_2:
Цитата megaloman:
|
||||
Отправлено: 22:50, 24-08-2018 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата Iska:
![]() Цитата Iska:
потому как, в случае чтения текста единым массивом, .* со своей жадностью (особенно в случае (?s) ) может привести к неожиданным результатам, при \n? в конце шаблона. Цитата Iska:
|
|||
------- Последний раз редактировалось YuS_2, 25-08-2018 в 00:08. Отправлено: 23:32, 24-08-2018 | #32 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
![]() когда ^ и $ рассматриваются как «начало строки» и «конец строки», а не «начало текста» и «конец текста». |
|
Отправлено: 23:58, 24-08-2018 | #33 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата Iska:
А это: будет работать, при любом .MultiLine |
|
------- Отправлено: 00:11, 25-08-2018 | #34 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата:
|
|
Отправлено: 21:43, 27-08-2018 | #35 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Выключается при выполнении memtest | Neschur | Непонятные проблемы с Железом | 2 | 16-09-2015 00:02 | |
Медиа - Ошибка при выполнении приложения-сервера при открытии мультимедийных файлов | Никон_Стадник@vk | Microsoft Windows 7 | 2 | 01-02-2013 11:22 | |
Лишний сайт при открытии браузер | korobka_dv | Лечение систем от вредоносных программ | 1 | 06-12-2012 00:45 | |
Ошибка - Ошибка при выполнении cmd | KvoD | Microsoft Windows 2000/XP | 6 | 26-12-2010 21:55 | |
[решено] Лишний диалог при установке Win2003 | S32 | Автоматическая установка Windows 2000/XP/2003 | 3 | 29-03-2007 13:28 |
|