CMD/BAT- [решено]копирование текста с изменением текста
Стояла задача упростить(автоматизировать), добавление новых баз 1с. Проблема была в том, что часть пользователей сидит локально, чать по сети. Соответственно у всех разные пути. Было решено добавлять вначале базу в терминальном доступе, а потом копировать локальным. Главная загвоздка была, это поменять пути в файле баз.
Долго искал батник, но готового решения не найти, общее мнение: геморно, проще скриптами или через сторонние программы.
Но, кто ищет тот находит.
Сначало опишу, что делает батник.
- копирует исходный список баз в заданную папку. И далее работает со скопированным файлом.
- Далее извлекается текст, в нем меняется путь.
- Результат записывается во временный файл.
- Содержание временного файла, записывается в нужный нам
В итоге получаем новый список баз, с правильно указанными путями.
Сам батник.
xcopy "D:\Users\Base\AppData\Roaming\1C\1CEStart\ibases.v8i" "D:\Users\Base\AppData\Roaming\1C\1CEStart\server" /Y
@echo off
setlocal enabledelayedexpansion
Set infile=ibases.v8i
Set find=B:\1с\InfoBases
Set replace=\\SERVER\InfoBases
@echo off
setlocal enabledelayedexpansion
set COUNT=0
for /F "tokens=* delims=," %%n in (!infile!) do (
set LINE=%%n
set TMPR=!LINE:%find%=%replace%!
Echo !TMPR!>>test_bat.txt
)
move test_bat.txt %infile%pause