66687
Jun 26, 2008, updated at 13:18:51 (UTC)
3501
2
0
Erste Zeile einer Text Datein in einem bestimmten Bereich einer XML Datei schreiben
Hallo,
ich habe 2 Datein einmal solutionid.txt und setup.exe.config.
Der Inhalt der solutionid.txt:
d48f1f0f-2959-45ec-8b5d-0178ae7e35b2
(besteht nur aus einer Zeile, anzahl an Zeichen ist immer gleich),
soll in die setup.exe.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="BannerImage" value="Default"/>
<add key="LogoImage" value="None"/>
<add key="EULA" value="EULA.rtf"/>
<add key="Require" value="MOSS"/>
<add key="SolutionId" value="d48f1f0f-2959-45ec-8b5d-0178ae7e35b2"/>
<add key="FarmFeatureId" value="400D8B01-1F64-46b4-A1DD-A1DA6A0E8E94"/>
<add key="SolutionFile" value="GlobalMasterPage.wsp"/>
<add key="SolutionTitle" value="GlobalMasterPage"/>
<add key="SolutionVersion" value="1.0.0.0"/>
<add key="UpgradeDescription" value="Upgrades {SolutionTitle} on all frontend web servers in the SharePoint farm."/>
<add key="RequireDeploymentToCentralAdminWebApllication" value="false"/>
<add key="RequireDeploymentToAllContentWebApplications" value="false"/>
</appSettings>
</configuration>
den SolutionId Wert ersetzten.
Nachdem was ich so gelesen habe sollte das Möglich sein, mittels Batch. Aber ich bekomms nicht hin.
Hoffe ihr könnt mir da weiter helfen.
mfG,
max
ich habe 2 Datein einmal solutionid.txt und setup.exe.config.
Der Inhalt der solutionid.txt:
d48f1f0f-2959-45ec-8b5d-0178ae7e35b2
(besteht nur aus einer Zeile, anzahl an Zeichen ist immer gleich),
soll in die setup.exe.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="BannerImage" value="Default"/>
<add key="LogoImage" value="None"/>
<add key="EULA" value="EULA.rtf"/>
<add key="Require" value="MOSS"/>
<add key="SolutionId" value="d48f1f0f-2959-45ec-8b5d-0178ae7e35b2"/>
<add key="FarmFeatureId" value="400D8B01-1F64-46b4-A1DD-A1DA6A0E8E94"/>
<add key="SolutionFile" value="GlobalMasterPage.wsp"/>
<add key="SolutionTitle" value="GlobalMasterPage"/>
<add key="SolutionVersion" value="1.0.0.0"/>
<add key="UpgradeDescription" value="Upgrades {SolutionTitle} on all frontend web servers in the SharePoint farm."/>
<add key="RequireDeploymentToCentralAdminWebApllication" value="false"/>
<add key="RequireDeploymentToAllContentWebApplications" value="false"/>
</appSettings>
</configuration>
den SolutionId Wert ersetzten.
Nachdem was ich so gelesen habe sollte das Möglich sein, mittels Batch. Aber ich bekomms nicht hin.
Hoffe ihr könnt mir da weiter helfen.
mfG,
max
Please also mark the comments that contributed to the solution of the article
Content-Key: 90711
Url: https://administrator.de/contentid/90711
Printed on: April 19, 2024 at 21:04 o'clock
2 Comments
Latest comment
Hallo MaxMustermann35 und willkommen im Forum!
Tatsächlich ist es mit Batch alleine (schon wegen der Sonderzeichen "<" und ">") zumindest mühsam - daher verwendet der folgende Vorschlag für die eigentliche Ersetzung ein temporäres (durch den Batch erzeugtes) VBScript:
Voraussetzung für das Ersetzen ist, dass es in der angegebenen Datei zumindest folgenden Bestandteil gibt:
Ob zwischen den auf "value" folgenden Anführungszeichen bereits ein Wert steht oder nicht, ist unerheblich, da an diese Position der eingelesene Key geschrieben wird.
Soferne der Teil
nicht gefunden wird, endet das Script mit einem Errorlevel 1. Das anschließende
wird nicht gesondert geprüft, sondern die Ersetzung betrifft alles bis zum nächsten Auftreten dieses Strings.
Die Änderung erfolgt unmittelbar in der Config-Datei, es wird keine Sicherungskopie erstellt.
Grüße
bastla
Nachdem was ich so gelesen habe sollte das Möglich sein, mittels Batch.
Wo liest Du denn sowas?! Tatsächlich ist es mit Batch alleine (schon wegen der Sonderzeichen "<" und ">") zumindest mühsam - daher verwendet der folgende Vorschlag für die eigentliche Ersetzung ein temporäres (durch den Batch erzeugtes) VBScript:
@echo off & setlocal
set "Cfg=D:\setup.exe.config"
set /p Key=<"D:\solutionid.txt"
set R=%temp%\ReplaceKey.vbs
echo S="SolutionId"" value=""":E="""/>":Set fso=CreateObject("Scripting.FileSystemObject")>%R%
echo Set args=WScript.Arguments:T=fso.OpenTextFile(args(0)).ReadAll>>%R%
echo P=InStr(1,T,S,vbTextCompare):If P=0 Then WScript.Quit 1 >>%R%
echo fso.CreateTextFile(args(0),True).Write Left(T,P+Len(S)-1)^&args(1)^&Mid(T,InStr(P,T,E))>>%R%
cscript //nologo %R% "%Cfg%" "%Key%"
if errorlevel 1 echo Keine Ersetzung vorgenommen!
SolutionId" value=""/>
Soferne der Teil
SolutionId" value="
"/>
Die Änderung erfolgt unmittelbar in der Config-Datei, es wird keine Sicherungskopie erstellt.
Grüße
bastla