Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 05.04.2021
Сообщений: 13

Поиск фрагмента по файлам одного расширения в конкретной папке

05.04.2021, 15:10. Показов 2952. Ответов 31

Студворк — интернет-сервис помощи студентам
Добрый день.
Подскажите пожалуйста.
Как сделать поиск и замену фрагмента текста в конкретной папке по частичному имени файла.
Т.е. нужно найти слово "Сумма" во всех файлах с расширением .txt, хранящихся в папке C:\Lab1 и заменить на слово "Итого".
При этом с папке есть файлы с другим расширением. Количество файлов неизвестно.
К тому же нужно не все файлы с расширением txt, а лишь те, в имени которых значится 2021.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.04.2021, 15:10
Ответы с готовыми решениями:

Смена расширения всем файлам в папке на одно
Есть папка с файлами, iso, bin, gen, smd... Нужно всем им поставить расширение - gen. Так то есть темы похожие, но конкретно для своего...

Перенаправление в .htaccess. Как все запросы к файлам в одной папке перенаправить к файлам в другой папке
Здравствуйте, нужно сделать второй сайт, который будет почти копией существующего. оба сайта на одном хосте первый сайт лежит в...

Поиск всех файлов в папке и смена их расширения на mp4
Код должен искать все файлы в папке и менять их разрешение на .mp4 Не работает #include <iostream> #include...

31
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
05.04.2021, 15:24
kiwow97030, добрый день! Пробуйте:
Windows Batch file
1
2
3
4
5
6
@echo off
for %%a in ("C:\lab1\*2021*.txt") do (
    sed -i "s/Сумма/Итого/" "%%a"
)
pause
exit
Примечание
1) Для работы скрипта необходима утилита sed (во вложении). Рекомендую распаковать и закинуть в C:\windows\system32
2) Скрипт сохраните в кодировке OEM-866
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
05.04.2021, 15:25
Утилита sed
Вложения
Тип файла: zip sed.zip (208.3 Кб, 3 просмотров)
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
05.04.2021, 15:29
Можно даже сократить до:
Windows Batch file
1
@sed -i "s/сумма/итого/" "C:\lab1\*2021*.txt"
0
0 / 0 / 0
Регистрация: 05.04.2021
Сообщений: 13
05.04.2021, 15:32  [ТС]
Эм... Не работает.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
05.04.2021, 15:33
kiwow97030, ну я рад за Вас. Научитесь давать более развернутый ответ продолжим
0
0 / 0 / 0
Регистрация: 05.04.2021
Сообщений: 13
05.04.2021, 15:36  [ТС]
В командной строке... Нажмите для продолжения.
Открываю файл, в котором точно есть Сумма. Слово на Итого не поменялось.
Сохранил батник в oem 866
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
05.04.2021, 15:41
1) В командной строке выполните команду и покажите вывод:
Windows Batch file
1
@dir /a-d/b "C:\lab1\*.txt"
2) Прикрепите несколько целевых .txt файлов к теме

Добавлено через 2 минуты
Стоп, наверное, мой косяк. Попробуйте так:
Windows Batch file
1
@sed -i "s/Сумма/Итого/" "C:\lab1\*2021*.txt"
0
0 / 0 / 0
Регистрация: 05.04.2021
Сообщений: 13
05.04.2021, 15:44  [ТС]
Иванов_2020~январь.txt
Иванов_2021~февраль.txt
Петров_2020~март.txt
Сидоров_2021~апрель.txt
Вложения
Тип файла: txt Иванов_2020~январь.txt (20 байт, 6 просмотров)
Тип файла: txt Иванов_2021~февраль.txt (20 байт, 11 просмотров)
Тип файла: txt Петров_2020~март.txt (20 байт, 6 просмотров)
Тип файла: txt Сидоров_2021~апрель.txt (20 байт, 8 просмотров)
0
0 / 0 / 0
Регистрация: 05.04.2021
Сообщений: 13
05.04.2021, 15:46  [ТС]
Bash
1
2
3
4
5
6
@echo off
for %%a in ("C:\Lab1\*2021*.txt") do (
    sed -i "s/╨б╤Г╨╝╨╝╨░/╨Ш╤В╨╛╨│╨╛/" "%%a"
)
pause
exit
А вот содержимое файлов, которые должны отработать:

Иванов_2021~февраль.txt
"Сумма"="74856"

Сидоров_2021~апрель.txt
"Сумма"="21322"
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
05.04.2021, 15:51
kiwow97030, я правильно понимаю, что кодировка .txt файлов UTF-8?
0
0 / 0 / 0
Регистрация: 05.04.2021
Сообщений: 13
05.04.2021, 15:54  [ТС]
Да. utf-8

Добавлено через 2 минуты
Если батник в utf-8 сохранить, то тоже ничего не меняется.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
05.04.2021, 15:58
kiwow97030, я понял. Сейчас что-нибудь придумаем
1
6962 / 2857 / 1099
Регистрация: 06.06.2017
Сообщений: 9,694
05.04.2021, 16:05
Цитата Сообщение от kiwow97030 Посмотреть сообщение
нужно найти слово "Сумма" во всех файлах с расширением .txt, хранящихся в папке C:\Lab1 и заменить на слово "Итого".
nhrt -spt:Сумма -t:Итого -o:q -notitle C:\Lab1\*2021*.txt
0
0 / 0 / 0
Регистрация: 05.04.2021
Сообщений: 13
05.04.2021, 16:13  [ТС]
Сохранил в батник и запустил:
Bash
1
nhrt -spt:Сумма -t:Итого -o:q -notitle C:\Lab1\*2021*.txt
Ничего не поменялось в файлах.
Вроде все так - все в одной папке.
0
6962 / 2857 / 1099
Регистрация: 06.06.2017
Сообщений: 9,694
05.04.2021, 16:28
kiwow97030, батник в OEM либо рядом с nhrt, либо пишем путь к nhrt.
Либо без батника вызываем из любой комстроки (Win+R и т. п.) с полным именем утилиты.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
05.04.2021, 16:29
kiwow97030, пробуйте:
Windows Batch file
1
2
3
@echo off
powershell -executionpolicy bypass -command "Get-ChildItem 'C:\lab1\*2021*.txt' -file | foreach {[array]$files+=$_.FullName}; foreach ($file in $files) {$t=get-content $file -Encoding UTF8; $t=$t -replace 'Сумма', 'Итого'; $t | out-file """$file""" -Encoding utf8}"
pause
0
0 / 0 / 0
Регистрация: 05.04.2021
Сообщений: 13
05.04.2021, 16:33  [ТС]
Ничего не работает. У меня уже крыша едет.
Сохранял батник в utf-8 и в oem-866.
Никакой разницы.
0
6962 / 2857 / 1099
Регистрация: 06.06.2017
Сообщений: 9,694
05.04.2021, 16:35
kiwow97030, с кодировкой — ОК. Что по остальному?
С:\Path\to\nhrt.exe -spt:Сумма -t:Итого -o:q -notitle C:\Lab1\*2021*.txt
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
05.04.2021, 16:38
Цитата Сообщение от Karen87 Посмотреть сообщение
пробуйте:
Тоже не работает? Сохранили в OEM-866?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2021, 16:38
Помогаю со студенческими работами здесь

Как установить права доступа к папке и всем файлам в папке?
Здравствуйте. Как установить права доступа к папке и всем файлам в папке? Для папки 555, для файлов 444. Функция chmod, устанавливает...

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

Добавление расширения к файлам
Учусь, учусь, а толку все мало, возникла ситуация подставить расширение mp3 к файлам в папке temp, но там куча разных файлов, а нужно...

Привязка кода к конкретной папке
Доброго времени суток. Подскажите пожалуйста, как можно привязать определённый код к папке. То есть, например,пользователь хочет открыть...

Список баз на сервере в конкретной папке
Как получить список баз данных в заданной папке на сервере? Dim variableName as New NotesDbDirectory( serverName$ ) or Set...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru