Я написал командный файл для замены определенных строк в файле dtsConfig.Теперь, из того, что я могу собрать, пакет не может напрямую редактировать файлы dtsconfig, поэтому я использую обходной путь, который работает, чтобы сначала преобразовать файлы .dtsConfig в .xml, отредактировать их и преобразовать обратно.
Однако у меня есть много файлов .dtsconfig с несколькими различными строками, которые я хочу изменить
например, строка SERVER_NAME
<ConfiguredValue> Data Source=SERVER_NAME;Integrated Security=True;</ConfiguredValue>
Мой кодниже можно изменить значение SERVER_NAME, но вместо этого я бы предпочел изменить содержимое между Data Source = и; Integrated Security.чтобы я мог сделать это для большого количества файлов dtsConfig, которые могут иметь разные имена серверов
Возможно ли это с помощью пакета?
Это мой код ниже:
@echo off > *.xml
setLocal DisableDelayedExpansion</p>
<p>:: make a copy of the .dtsConfig files
set str="C:\dtsconfig\copyArea"</p>
<p>:: Copy all dtsConfig files into the backup directory
xcopy "*.dtsConfig" %str1% /E /I</p>
<p>:: Rename all .dtsConfig files to .xml to enable batch to work with them
ren *.dtsConfig *.xml</p>
<p>:: set the new server name
set dataSource=NEW_SERVER_NAME</p>
<p>@echo off > ConfigFile.dtsConfig
setLocal DisableDelayedExpansion</p>
<p>if exist ConfigFile.dtsConfig del ConfigFile.dtsConfig</p>
<p>for /f "tokens=* delims= " %%G in (ConfigFile.xml) do (
set str=%%G</p>
<code>setLocal EnableDelayedExpansion
:: set the string "SERVER_NAME" to be the dataSource defined above
set str=!str:SERVER_NAME=%dataSource%!
:: generate a new dtsConfig file with the rename in place
>> ConfigFile.dtsConfig echo(!str!
endlocal)
Спасибо.