Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/26: Рейтинг темы: голосов - 26, средняя оценка - 4.88
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216

Пакетная замена сторок

23.05.2021, 17:21. Показов 5476. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите с созданием Bat файл по пакетной замене трех определенных строк на одну в файлах с расширением *.MIF
CoordSys NonEarth
Units "m"
Bounds ( 1281875.370000, 447711.590000 ) ( 1333064.200000, 504231.710000 )
на
CoordSys NonEarth Units "m" Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )
Вложения
Тип файла: txt Cvv.txt (662 байт, 58 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.05.2021, 17:21
Ответы с готовыми решениями:

Пакетная замена текста в файлах с передачей параметра
Добрый день. Помогите знающие разобраться со следующей задачей. В рамках директории есть ряд файлов вида 1.bat, 2.bat,..etc. с текстом : ...

Пакетная замена текста в файлах хранящихся в папках
Привет. У меня такая ситуация. Есть 300 папок, в каждой папке файлы, в них текст, в тексте нужно заменить слово "город" на...

Не удаётся найти путь,пакетная замена текста в файлах
Привет. Хочу заменить русский текст в файлах, батник сохранил в oem 866, запускаю команду и пишется что не удается найти путь, причем...

39
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
23.05.2021, 21:20  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо большое за то, что откликнулись! Всем, большущее!!!

Буду использовать скрипт FlasherX, он не требует установки доп. ПО, те то, что нужно.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.05.2021, 22:13
Ещё один вариант решения с использованием powershell в батнике:
Windows Batch file
1
2
3
4
5
@echo off
set "folder=C:\test"
powershell -executionpolicy bypass -command "$files=Get-ChildItem '%folder%\*.mif'; foreach ($file in $files) {$a=[System.IO.File]::ReadAllText("""$file"""); $a -replace """CoordSys NonEarth\r\nUnits `"""m`"""\r\nBounds \( \d+\.\d+, \d+\.\d+ \) \( \d+\.\d+, \d+\.\d+ \)""","""CoordSys NonEarth Units `"""m`""" Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )""" | Set-Content """$file"""}"
pause
exit
Примечание.
Во 2-ой строчке вместо C:\test указываете путь к каталогу, в котором лежат файлы .mif
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
26.05.2021, 11:57  [ТС]
Karen87, ваш последний код тоже работает, подскажите если в файле содержится кириллица, батник
Заменяет этот текст на символ "?"
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
26.05.2021, 12:10
Виктор83, попробуйте сохранить батник в кодировке OEM-866
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
26.05.2021, 12:35  [ТС]
В файле содержится текст например
ключ char (13)
площадь decimal (11.1)

Сохранение через нотпед в кодировке oem-866 не помогло
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
26.05.2021, 12:40
Виктор83, приложите файл, так проще будет оттестировать
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
26.05.2021, 12:49  [ТС]
Если можно вечером пришлю, сейчас нет возможности
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
26.05.2021, 12:50
Хорошо
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
26.05.2021, 13:43  [ТС]
Вот пример файла
Вложения
Тип файла: txt Cvv2.txt (776 байт, 6 просмотров)
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
26.05.2021, 14:13
Виктор83, пробуйте:
Windows Batch file
1
2
3
4
5
@echo off
set "folder=C:\test"
powershell -executionpolicy bypass -command "$files=Get-ChildItem '%folder%\*.mif'; foreach ($file in $files) {$a=[System.IO.File]::ReadAllText("""$file""", [Text.Encoding]::GetEncoding(65001)); $a -replace """CoordSys NonEarth\r\nUnits `"""m`"""\r\nBounds \( \d+\.\d+, \d+\.\d+ \) \( \d+\.\d+, \d+\.\d+ \)""","""CoordSys NonEarth Units `"""m`""" Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )""" | Set-Content """$file""" -Encoding UTF8}"
pause
exit
Добавлено через 1 минуту
Единственный момент, который стоило бы уточнить. В первом варианте файла cvv2.txt заменяемые строки не имеют отступа от левого края, во втором имеют. Проясните этот момент. Какой из вариантов правильный?
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
26.05.2021, 14:28  [ТС]
Вариант с отступами правильны

Добавлено через 8 минут
Теперь ромбиками кириллица отображается
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
26.05.2021, 14:32
Цитата Сообщение от Виктор83 Посмотреть сообщение
Вариант с отступами правильны
Поправлю
Цитата Сообщение от Виктор83 Посмотреть сообщение
Теперь ромбиками кириллица отображается
Через что открываете? У меня стандартный блокнот и notepad++ открывает без проблем
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
26.05.2021, 14:39  [ТС]
Через блокнот открываю. В нотпеде квадратиками. Латиница отображается коррекно

Добавлено через 3 минуты
Корректируемые файлы в кодировке 1251
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
26.05.2021, 14:43
Цитата Сообщение от Виктор83 Посмотреть сообщение
Корректируемые файлы в кодировке 1251
Так, давайте конкретно. Файл Вы прислали в кодировке UTF-8. В какой кодировке изменяемый файл?
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
26.05.2021, 14:44  [ТС]
1251
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
26.05.2021, 14:48
Пришлите оригинальный изменяемый файл
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
26.05.2021, 14:51  [ТС]
Вот
Вложения
Тип файла: txt Cvv3.txt (745 байт, 12 просмотров)
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
26.05.2021, 15:06
Лучший ответ Сообщение было отмечено Виктор83 как решение

Решение

Виктор83, пробуйте:
Windows Batch file
1
2
3
4
5
@echo off
set "folder=C:\test"
powershell -executionpolicy bypass -command "$files=Get-ChildItem '%folder%\*.mif'; foreach ($file in $files) {$a=[System.IO.File]::ReadAllText("""$file""", [Text.Encoding]::GetEncoding(1251)); $a -replace """CoordSys NonEarth\r\n\s*Units `"""m`"""\r\n\s*Bounds \( \d+\.\d+, \d+\.\d+ \) \( \d+\.\d+, \d+\.\d+ \)""","""CoordSys NonEarth Units `"""m`""" Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )""" | Set-Content """$file""" -Encoding default}"
pause
exit
1
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
26.05.2021, 15:28  [ТС]
Спасибо большое, как раз то, что нужно для 2х вариантов файлов!
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
26.05.2021, 15:30
Не за что
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2021, 15:30

Пакетная замена данных в файлах docx
Имеется ряд файлов docx в которых имеются одинаковые значения, чтоб не менять их заменой каждый в ручную задал им переменное значение и...

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

обработка сторок и работа с файлом
Имеется исходный файл(с кодом программы, файл txt), нужно из него считать текст и затем в этом тексте заменить begin на BEGIN и записать...

оформление текста и перенос сторок
Доброго времени суток! Пишу на CodeIgniter, из формы поля textarea в базу сохраняется текст, его в форме форматируют как надо, т.е...

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru