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

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

23.05.2021, 17:21. Показов 5300. Ответов 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
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.05.2021, 17:44
Виктор83, здравствуйте! Пробуйте:
Windows Batch file
1
2
3
4
5
6
@echo off
for %%a in (*.mif) do (
    sed -i "/CoordSys NonEarth/{N;N;s/CoordSys NonEarth\nUnits \"m\"\nBounds ( 1281875.370000, 447711.590000 ) ( 1333064.200000, 504231.710000 )/CoordSys NonEarth Units \"m\" Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )/}" "%%a"
)
pause
exit
Примечание.
Для работы скрипта нужна утилита sed (во вложении). Рекомендую закинуть в C:\windows\system32
Вложения
Тип файла: rar sed.rar (182.7 Кб, 4 просмотров)
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
23.05.2021, 18:13  [ТС]
Добрый день! Есть вариант без установки утилит? На рабочем компьютере не получится установить.

Добавлено через 7 минут
Вот в этой строчке у всех файлов будут разные цифры
Bounds ( 1281875.370000, 447711.590000 ) ( 1333064.200000, 504231.710000 )
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.05.2021, 18:15
Виктор83, powershell какой версии установлен?

Добавлено через 1 минуту
Виктор83, про разные цифры. Пока не будет от Вас четкого ТЗ я продолжать не буду
0
6981 / 2873 / 1104
Регистрация: 06.06.2017
Сообщений: 9,754
23.05.2021, 18:48
Лучший ответ Сообщение было отмечено Виктор83 как решение

Решение

Виктор83, js пойдёт?
JavaScript
1
2
3
4
5
6
7
8
9
r = 'CoordSys NonEarth Units "m" Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )'
oFSO   = WSH.CreateObject('Scripting.FileSystemObject')
oItems = WSH.CreateObject('Shell.Application').NameSpace(oFSO.GetAbsolutePathName('')).Items()
oItems.Filter(8256, '*.mif')
for (var oFile = new Enumerator(oItems); !oFile.atEnd(); oFile.moveNext()){
  text = oFSO.openTextFile(oFile.item()).readAll().replace(/CoordSys NonEarth\r\nUnits "m"\r\nBounds \( \d+\.\d+, \d+\.\d+ \) \( \d+\.\d+, \d+\.\d+ \)/g, r)
  with(oFSO.openTextFile(oFile.item(),2)){write(text);close()}
}
oItems = null; oFSO = null; CollectGarbage()
1
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
23.05.2021, 19:47
для замены в каждом файле *.MIF из папки: 'C:\MIF'
PowerShell
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function MIF-Rpl($sPath) {
  foreach ($i in gci $sPath *.MIF) {
    $MIF = Switch -Wildcard -File ($i.FullName) {
      'CoordSys *' {$prf = $_; Continue}
      'Units *'    {$sff = $_; Continue}
      'Bounds *'   {
        $ptf = $_ -Replace '^(\S+\s).+$', '$1( -4000000, -4000000 ) ( 16000000, 16000000 )'
        $prf+' '+$sff+' '+$ptf
      }
      Default      {$_}
    }
    $MIF|Set-Content $i.FullName
  }
}
MIF-Rpl 'C:\MIF'
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
23.05.2021, 19:53
Берем любой текстовый редактор (кроме блокнота), отрываем в меню опцию Замена в файлах, пишем простенькую регулярку
Code
1
\r\n(Units.+?)\r\n    заменить на  " \1 "
и ... все:
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
23.05.2021, 20:36  [ТС]
Спасибо большое! Буду пробовать!

Добавлено через 13 минут
Есть множество файлов с расширением *.MIF

Пример файла прикрепил,
вот эта строчка, которая в каждом файле своя
Bounds ( 1281875.370000, 447711.590000 ) ( 1333064.200000, 504231.710000 )

должна быть заменена на строчку
Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )
в каждом mif файле

Добавлено через 2 минуты
Виктор83, powershell какой версии установлен?

2 версии
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.05.2021, 20:38
С учётом
Цитата Сообщение от Виктор83 Посмотреть сообщение
вот эта строчка, которая в каждом файле своя
Bounds ( 1281875.370000, 447711.590000 ) ( 1333064.200000, 504231.710000 )
Windows Batch file
1
2
3
4
5
6
@echo off
for %%a in (*.mif) do (
    sed -i "/CoordSys NonEarth/{N;N;s/CoordSys NonEarth\nUnits \"m\"\nBounds ( [0-9]\+\.[0-9]\+, [0-9]\+\.[0-9]\+ ) ( [0-9]\+\.[0-9]\+, [0-9]\+\.[0-9]\+ )/CoordSys NonEarth Units \"m\" Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )/}" "%%a"
)
pause
exit
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
23.05.2021, 20:43  [ТС]
sed не является внутренней или внешней программой

Добавлено через 1 минуту
на работе закрыт доступ к папке windows не смогу сюда разместить C:\windows\system32
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.05.2021, 20:45
Виктор83, sed нужно скачать, я прикладывал во 2-м посте, но я думаю Вам этот вариант не подойдет, если Вы озвучили, что на машину ничего скачивать и устанавливать нельзя. Данное решение я, на всякий случай, предложил для схожих задач
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
23.05.2021, 20:46  [ТС]
Я понял, спасибо!
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.05.2021, 20:46
Цитата Сообщение от Виктор83 Посмотреть сообщение
на работе закрыт доступ к папке windows не смогу сюда разместить C:\windows\system32
Разместите в любом другом месте, а в скрипте вместо sed укажите полный путь
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
23.05.2021, 20:47  [ТС]

если через регулярку в Notepad+, но это другая ветка сайта?
0
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
23.05.2021, 20:49  [ТС]
Вот пока что получилось через регулярку
Миниатюры
Пакетная замена сторок  
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.05.2021, 20:50
Решение в одну строку:
Windows Batch file
1
@sed -i "/CoordSys NonEarth/{N;N;s/CoordSys NonEarth\nUnits \"m\"\nBounds ( [0-9]\+\.[0-9]\+, [0-9]\+\.[0-9]\+ ) ( [0-9]\+\.[0-9]\+, [0-9]\+\.[0-9]\+ )/CoordSys NonEarth Units \"m\" Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )/}" "*.mif"
1
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.05.2021, 20:50
Решение в одну строку:
Windows Batch file
1
@sed -i "/CoordSys NonEarth/{N;N;s/CoordSys NonEarth\nUnits \"m\"\nBounds ( [0-9]\+\.[0-9]\+, [0-9]\+\.[0-9]\+ ) ( [0-9]\+\.[0-9]\+, [0-9]\+\.[0-9]\+ )/CoordSys NonEarth Units \"m\" Bounds ( -4000000, -4000000 ) ( 16000000, 16000000 )/}" "*.mif"
1
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
23.05.2021, 20:52  [ТС]
Я попробую завтра, если получится, будет очень здорово
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
23.05.2021, 20:55

Я не помню как делается подстановка найденной группы в Notepad++ - либо \1 или $1.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
23.05.2021, 21:14
В общем, если делаете через Notepad++, то скобки круглые нужно заэкранировать в шаблоне замены:

Code
1
 \1 Bounds \( -4000000, -4000000 \) \( 16000000, 16000000 \)
Иначе он их "съедает" принимая за спецсимволы.

А так вроде все работает:
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2021, 21:14
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru