Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать???

Ответить
Настройки темы
CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать???

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Лежит папка а в ней все отчёты в текстовом виде, так вот надо удалить со всех текстовых документах строки где есть слова "mozila" как это сделать? Нашёл вот это
HTML код: Выделить весь код
type your_file.txt | findstr /v firefox.exe > temp.txt del your_file.txt rename temp.txt your_file.txt

но он не удаляет ((((

Отправлено: 19:39, 19-09-2009

 

Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


А как сделать чтобы эти строки оставались а удалялись все кроме этих. Суть в том что удалить определенные строки не проблема через тотепад можно через поиск и замену удалить все за пару минут, если прописать все что нужно удалить, но проблема в том что информация которую нужно убрать в каждом файле немного отличается.

Отправлено: 19:02, 06-09-2020 | #51



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt я20090618utf.bat.txt
(351 байт, 2 просмотров)

а удалялись все кроме этих
Сохранить в UTF8 без BOM, путь должен быть без кириллицы.
Код: Выделить весь код
@Echo Off
	Set "BoxIn=Z:\Box_In"
	Set "Mask=*.txt"
	Set KeyWord="Ступень" "Бюджетирование (основатель)"

	Pushd "%BoxIn%" && FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%Mask%" /B /A:-D`) DO (
		>"%%f.tmp" (FOR  %%k IN (%KeyWord%) DO (More "%%f"|Find /I %%k))
		>nul Move /Y "%%f.tmp" "%%f"
	)
	Popd
Exit /B
Во первых, это не эффективно
Во вторых, в результате получим на выходе файлы, где строки будут следовать в порядке, указанном в Set KeyWord=..... вне зависимости от того, как они следовали в исходных файлах
Я сделал, что мог, кто может, пусть сделает по другому. Вперёд на штурм PowerShel

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:16, 06-09-2020 | #52


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt я20090619utf.bat.txt
(1.1 Kb, 3 просмотров)

Jeka124, До меня не сразу дошло: у Вас есть бланк, надо преобразовать входные файлы в соответствии с бланком.
Вот вариант, но работать он будет медленно, сохранить в UTF
Код: Выделить весь код
@Echo Off
	Set "BoxIn=Z:\Box_In"
	Set "Mask=*.txt"
	Call :KeyWord
	Pushd "%BoxIn%" && FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%Mask%" /B /A:-D`) DO (
		Echo %%f
		>"%%f.tmp" (FOR /F "usebackq delims==" %%k IN (`Set "@@"`) DO (More "%%f"|Call Find /I "%%%%k%%"))
		>nul Move /Y "%%f.tmp" "%%f"
	)
	Popd
Exit /B

:KeyWord
	Set "@@01=Код ЕГРПОУ:"
	Set "@@02=Полное название:"
	Set "@@03=Сокращенное название:"
	Set "@@04=Тип ЗОСО:"
	Set "@@05=Ступень:"
	Set "@@06=Форма собственности:"
	Set "@@07=Тип местности:"
	Set "@@08=Индекс:"
	Set "@@09=Почтовый адрес:"
	Set "@@10=Код КОАТУУ:"
	Set "@@11=Телефоны:"
	Set "@@12=E-mail:"
	Set "@@13=Директор:"
	Set "@@14=Куратор ЗОСО:"
	Set "@@15=Уполномоченное лицо:"
	Set "@@16=Количество учащихся:"
	Set "@@17=Количество персонала:"
	Set "@@18=Количество классов:"
	Set "@@19=Бюджетирование (основатель):"
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:54, 06-09-2020 | #53


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6705
Благодарности: 1576

Профиль | Отправить PM | Цитировать


Powershell:
Код: Выделить весь код
dir "C:\temp\20200906\*.txt" -Recurse |% {
$data = gc "$($_.fullname)" -encoding utf8 |Select-String `
"Код ЕГРПОУ:",
"Полное название:",
"Сокращенное название:",
"Тип ЗОСО:",
"Ступень:",
"Форма собственности:",
"Тип местности:",
"Индекс:",
"Почтовый адрес:",
"Код КОАТУУ:",
"Телефоны:",
"E-mail:",
"Директор:",
"Куратор ЗОСО:",
"Уполномоченное лицо:",
"Количество учащихся:",
"Количество персонала:",
"Количество классов:",
"Бюджетирование (основатель):"

$data |Set-Content "$($_.fullname)" -Encoding utf8

}
Если в исходном файле нет той или иной строки, она должна быть в конечном файле?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 06-09-2020 в 21:02.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:56, 06-09-2020 | #54


Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да, как данным скриптом пользоваться? я запускаю а он что-то не работает

Отправлено: 21:34, 06-09-2020 | #55


Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


Цитата Jeka124:
возможно результат не сохраняется? »
Да, я тогда убегал, и выложил только поиск строк, без записи.
Вот с записью в тот же файл:
Код: Выделить весь код
param(
    $model  = "C:\Files\Столбцы.txt",
    $folder = "C:\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
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:39, 06-09-2020 | #56


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6705
Благодарности: 1576

Профиль | Отправить PM | Цитировать


Цитата Jeka124:
я запускаю а он что-то не работает »
ПКМ - "Запустить в Powershell"

Путь в файлам не забыли исправить?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 21:44, 06-09-2020 | #57


Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


Цитата Jeka124:
Да, как данным скриптом пользоваться? я запускаю а он что-то не работает »
Цитата Jeka124:
открыл windows powerhell ise от имени админа »
,вставить код, изменить путь, нажать F5.

Отправлено: 21:48, 06-09-2020 | #58


Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Эта строка (dir "C:\temp\20200906\*.txt" -Recurse |% )путь к txt файлам?

Вот что выдает
Пути я поменял перенес на другой диск а то винда не дает доступ

G:\Box_In\1.ps1:27 знак:15
+ $model = "G:\Files\St.txt",
+ ~~~~~~~~~~~~~~~~~
Недопустимое условие назначения. Входным значением оператора назначения должен быть объект, способный принимать назначения, такой как переменная или свойство.
+ CategoryInfo : ParserError: ( [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : InvalidLeftHandSide

Смайлик не ставил это форум преобразовал :№) без знака №

Отправлено: 21:50, 06-09-2020 | #59


Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


Цитата Jeka124:
G:\Box_In\1.ps1:27 знак:15
+ $model = "G:\Files\St.txt", »
$model... - это вторая строка, а не 27. Покажите весь код, который запускаете.

Отправлено: 21:54, 06-09-2020 | #60



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать???

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Найти и заменить в текстовом файле. Как? 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




 
Переход