Systemvariablen auslesen und einen Satz in der config Datei beschreiben
Hallo zusammen,
ich habe eine Konfig Datei bei welcher ich den Benutzernamen schreiben muss.
Der Satz welchen ich beschreiben muss lautet :
<add key="UserName" value="%username%"/>
Ich hatte es versucht über eine Variable zu lösen, aber scheinbar kann die datei Plugin.dll.config
keine Variablen lesen. Das Feld %username% sollte also mit dem windows User befüllt werden.
Hat jemand eine Lösung ?
Vielen Dank
Gruß
Runfun
ich habe eine Konfig Datei bei welcher ich den Benutzernamen schreiben muss.
Der Satz welchen ich beschreiben muss lautet :
<add key="UserName" value="%username%"/>
Ich hatte es versucht über eine Variable zu lösen, aber scheinbar kann die datei Plugin.dll.config
keine Variablen lesen. Das Feld %username% sollte also mit dem windows User befüllt werden.
Hat jemand eine Lösung ?
Vielen Dank
Gruß
Runfun
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 665657
Url: https://administrator.de/contentid/665657
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
Es scheint sich um eine NetFramework Anwendung zu handeln. Du kannst mit String.Replace die Variable ersetzen und den Uusernamen bekommst du wie folgt.
Ich hoffe ich konnte dir helfen.
PS: In System.Configuration solltest du auch die Variable in die Konfig Datei schreiben können bzw die config file von quellcode aus editieren können.
LG, J Herbrich
Es scheint sich um eine NetFramework Anwendung zu handeln. Du kannst mit String.Replace die Variable ersetzen und den Uusernamen bekommst du wie folgt.
Environment.UserName
Ich hoffe ich konnte dir helfen.
PS: In System.Configuration solltest du auch die Variable in die Konfig Datei schreiben können bzw die config file von quellcode aus editieren können.
LG, J Herbrich
Das ist XML und XML sollte man wenn immer möglich mit einem richtigen Parser bearbeiten, statt mit einem unsicheren Replace! Und Batch für sowas zu nehmen inzwischen auch eine eher weniger gute Idee.
Wenn die XML also bspw. so aussehen würde
dann wäre der PS Code folgender
Gruß w.
Wenn die XML also bspw. so aussehen würde
<?xml version ="1.0"?>
<configuration>
<appSettings>
<add key="UserName" value=""/>
</appSettings>
</configuration>
$xmlfile = 'E:\Plugin.dll.config'
$xml = New-Object XML
$xml.Load($xmlfile)
$xml.SelectSingleNode("/configuration/appSettings/add[@key = 'UserName']").value = $env:USERNAME
$xml.Save($xmlfile)
Hallo,
an sich ja, aber das ist keine "normale" xml Datei sondern eine config datei. Ich schätze Mal eine App Config oder eine Web.Config. Für diese speziellen Datein gibt es im NetFramework eigene Parser. Und diese sollten auch verwendet werden.
Eine Änderung dieser Datei kann nicht garantiert ohne weiteres durch einfaches Bearbeiten in die Laufzeit übernommen werden. Mit den Config Parser der App Config hingegen wird die Änderung nicht nur zurück geschrieben sondern auch in die Laufzeit übernommen.
LG, J Herbrich
an sich ja, aber das ist keine "normale" xml Datei sondern eine config datei. Ich schätze Mal eine App Config oder eine Web.Config. Für diese speziellen Datein gibt es im NetFramework eigene Parser. Und diese sollten auch verwendet werden.
Eine Änderung dieser Datei kann nicht garantiert ohne weiteres durch einfaches Bearbeiten in die Laufzeit übernommen werden. Mit den Config Parser der App Config hingegen wird die Änderung nicht nur zurück geschrieben sondern auch in die Laufzeit übernommen.
LG, J Herbrich
Mit c# VB.Net und Konsorten siehe
https://stackoverflow.com/questions/5468342/how-to-modify-my-app-exe-con ...
https://docs.microsoft.com/en-us/dotnet/api/system.configuration.configu ...
Das kannst bei AppConfigs du auch einfach mittels Powershell machen
Oder wenn du das in einer Batch einbauen willst, das geht selbstredend auch
In beiden Skripten einfach Pfad zur EXE der Config anpassen, fertig.
Thread dann bitte als gelöst markieren nicht vergessen.
https://stackoverflow.com/questions/5468342/how-to-modify-my-app-exe-con ...
https://docs.microsoft.com/en-us/dotnet/api/system.configuration.configu ...
Das kannst bei AppConfigs du auch einfach mittels Powershell machen
$config = [System.Configuration.ConfigurationManager]::OpenExeConfiguration('D:\test.exe')
$config.AppSettings.Settings['UserName'].Value = $env:USERNAME
$config.Save()
@echo off
set "exepath=D:\datei.exe"
powershell -EP Bypass -C "$config = [System.Configuration.ConfigurationManager]::OpenExeConfiguration('%exepath%');$config.AppSettings.Settings['UserName'].Value = $env:USERNAME;$config.Save()"
Thread dann bitte als gelöst markieren nicht vergessen.