|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать??? |
|
CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать???
|
Новый участник Сообщения: 5 |
Профиль | Отправить PM | Цитировать |
|
Отправлено: 19:39, 19-09-2009 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать dir "G:\Box_In*.txt" -Recurse |% {
$data = gc "$($_.fullname)" -encoding utf8 |Select-String ` "Код ЕГРПОУ:", "Полное название:", "Сокращенное название:", "Тип ЗОСО:", "Ступень:", "Форма собственности:", "Тип местности:", "Индекс:", "Почтовый адрес:", "Код КОАТУУ:", "Телефоны:", "E-mail:", "Директор:", "Куратор ЗОСО:", "Уполномоченное лицо:", "Количество учащихся:", "Количество персонала:", "Количество классов:", "Бюджетирование (основатель):" $data |Set-Content "$($_.fullname)" -Encoding utf8 } param( $model = "G:\Files\St.txt", $folder = "G:\Box_In" )cls foreach($i in (gci $folder *.txt).FullName){ $l=foreach($j in (gc $model -en UTF8)){ gc $i -enc UTF8|? {$_ -like "$j*"} }$l|out-file $i } |
Отправлено: 22:01, 06-09-2020 | #61 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать Jeka124, Вы 2 разных кода записали в один скрипт???
Еще раз: 1.Запустите powershell ise 2.Скопируйте и вставьте туда этот код (в окошко, где слева идет нумерация строк): param( $model = "G:\Files\St.txt", $folder = "G:\Box_In" )cls foreach($i in (gci $folder *.txt).FullName){ $(foreach($j in (gc $model -enc UTF8)){ gc $i -enc UTF8|? {$_ -like "$j*"} })|out-file $i } 4. Запускайте |
Последний раз редактировалось Fors1k, 06-09-2020 в 22:16. Отправлено: 22:06, 06-09-2020 | #62 |
Старожил Сообщения: 216
|
Профиль | Отправить PM | Цитировать Jeka124, а зачем вы слепили два разных кода в один скрипт ?
Вот ещё такой вариант можете попробовать: $folder = 'G:\Box_In' $blank = 'G:\Files\St.txt' Get-ChildItem $folder -filter *.txt -Recurse | ForEach { $str = Get-Content "$($_.fullname)" -Encoding utf8 ` | Select-String (Get-Content $blank -Encoding utf8 | ForEach {$_}) $str | Set-Content "$($_.fullname)" -Encoding utf8 } Вот только не пойму, почему пропускается последняя строка (Бюджетирование (основатель):) в обоих вариантах этого кода... |
Отправлено: 22:07, 06-09-2020 | #63 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать Цитата Uragan66:
|
|
Отправлено: 22:09, 06-09-2020 | #64 |
Старожил Сообщения: 216
|
Профиль | Отправить PM | Цитировать Fors1k, ясно... спасибо за подсказку, как-то упустил из виду!
ну нужно всего-то экранировать скобки в файле St.txt но ваш код работает отлично, правда, не знаю как будет с большим к-вом файлов, не пробовал. |
Отправлено: 22:15, 06-09-2020 | #65 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать В смысле, скобки в строке Бюджетирование мешают? Вы правы оба кода работают но есть один небольшой нюанс должно быть 19 строк не зависимо есть эта строка в обрабатываемом файле или нет просто эти данные будут заполнены позже. А так все ок.
|
Отправлено: 22:24, 06-09-2020 | #66 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать Цитата Jeka124:
|
|
Отправлено: 23:53, 06-09-2020 | #67 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать Благодарю, все работает отлично.
|
Отправлено: 00:08, 07-09-2020 | #68 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать Не пойму в чем проблема, скрипт удаляет Сокращенное название: я как-то не обратил изначально на это внимание так как не у всех файлах данные пункт был заполнен
|
Последний раз редактировалось Jeka124, 08-09-2020 в 12:19. Отправлено: 12:11, 08-09-2020 | #69 |
Ветеран Сообщения: 2710
|
Профиль | Отправить PM | Цитировать Jeka124, Это Ваши проблемы:
в файле "Столбцы.txt" у Вас "Сокращенное название:" в файле "11493.txt" "Сокращенное:" Естественно по такой ключевой фразе поиск не состоится. Вообще-то я бы изменил методику кодировки отчетов, например, первые 3 позиции отвёл бы для цифрового кода, например: 010 Код ЕГРПОУ: 020 Полное название: 030 Сокращенное название: 040 Тип ЗОСО: 050 Ступень: 060 Форма собственности: 070 Тип местности: 080 Индекс: 090 Почтовый адрес: 100 Код КОАТУУ: 110 Телефоны: 120 E-mail: 130 Директор: 140 Куратор ЗОСО: 150 Уполномоченное лицо: 160 Количество учащихся: 170 Количество персонала: 180 Количество классов: 190 Бюджетирование (основатель): |
------- Отправлено: 13:12, 08-09-2020 | #70 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Найти и заменить в текстовом файле. Как? | Pozia | AutoIt | 15 | 11-03-2010 19:12 | |
подсчёт слов в текстовом файле | bakatum | Хочу все знать | 4 | 22-01-2010 21:10 | |
CMD/BAT - [решено] Отделить последние цифры из строчки в текстовом файле | ZeroCrash | Скриптовые языки администрирования Windows | 4 | 29-06-2009 16:03 | |
[решено] Как удалить строки в текстовом файле при отсутсвии файла в опрелеленном месте? | Pozia | AutoIt | 23 | 14-05-2009 21:41 | |
Как оставить в файле Х первых строк? | Dan | Вебмастеру | 10 | 19-10-2002 00:41 |
|