我寫了一個批處理文件來替換dtsConfig文件中的某些字符串。 現在從我可以收集的內容來看,批處理無法直接編輯dtsconfig文件,所以我使用的解決方法是使用 將.dtsConfig文件首先轉換爲.xml文件,編輯它們並將其轉換回來。批處理文件 - 在dtsconfig/xml文件中的字符串之間編輯字符串的代碼
但是我有很多的.dtsconfig文件與幾個不同的字符串我想改變
例如下面
<ConfiguredValue> Data Source=SERVER_NAME;Integrated Security=True;</ConfiguredValue>
我的串碼SERVER_NAME是能夠改變SERVER_NAME值,而是我更願意改變之間 數據源中的內容=和;集成安全性。所以我可以做很多dtsConfig文件,可能有不同的服務器名稱
這是可能的批處理?
這是我下面的代碼:
@echo off > *.xml
setLocal DisableDelayedExpansion
:: make a copy of the .dtsConfig files set str="C:\dtsconfig\copyArea"
:: Copy all dtsConfig files into the backup directory xcopy "*.dtsConfig" %str1% /E /I
:: Rename all .dtsConfig files to .xml to enable batch to work with them ren *.dtsConfig *.xml
:: set the new server name set dataSource=NEW_SERVER_NAME
@echo off > ConfigFile.dtsConfig setLocal DisableDelayedExpansion
if exist ConfigFile.dtsConfig del ConfigFile.dtsConfig
for /f "tokens=* delims= " %%G in (ConfigFile.xml) do ( set str=%%G
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)
謝謝。
感謝您付出的努力。 – Stephen 2011-03-14 15:49:58
但是,請注意,您的代碼與我的一樣,依賴於事先知道每個dtsconfig文件的SERVER_NAME,換句話說,對於 Data Source = SERVER_NAME; Integrated Security = True; ConfiguredValue>的其他字符,以下是之前的字符串並且在SERVER_NAME之後,在每個dtsconfig文件中都是相同的,但如果找到我,SERVER_NAME可能會有所不同? –
Stephen
2011-03-14 15:53:37
@Stephen:在我的例子中,SERVER_NAME並不重要,因爲'='和';'之間的所有字符都被替換爲新的'%dataSource%' – jeb 2011-03-15 12:08:51