Jump to content

Dateiinhalt durch anderen ersetzen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Servus Männer,

bin ganz neu und quasi auf der Durchreise.

Ich brauche ein Script das in einer bestimmten .xml Datei (usergui.xml von xbmc) den Inhalt des

 

<audiodevice>mode=0</audiodevice> durch

<audiodevice>mode=2</audiodevice> ersetzt UND UMGEKEHRT und . Das ganze als ausführbares Konstrukt per Tastendruck meiner Fernbedienung.

 

Hintergrund: XBMC lässt nur eine Änderung des Ausgabedevices innerhalb seiner Oberfläche zu, und es ist ihm herzlich egal, was in Windows eingestellt ist, sodass ich gezwungen wäre es manuell in XBMC selber umzustellen, was allerdings kontraproduktiv ist, da der Monitor dafür ausgeschaltet bleiben soll.

 

Gibt es sowas? Oder kann mir das jemand kurz zusammenbauen. Bin auch bereit dafür zu bezahlen.

 

FG
siaro

 

Obiger Eintrag ist nur beispielhaft.

Link zu diesem Kommentar

Hi siaro,

 

da gibt es tausend und einen Weg, das zu machen. Hier ein Beispiel, wie Du es per PowerShell lösen kannst:

 

(Get-Content <Pfad>\usergui.xml) | Foreach-Object {$_ -replace "<audiodevice>mode=0", "<audiodevice>mode=2"} | Set-Content <Pfad>\usergui.xml

Ich glaube, '<','>' und '=' muss nicht entquotiert werden, ansonsten müsstest Du noch ein '\' davorschreiben. Du könntest auch den aktuellen Wert auslesen und vergleichen, so dass Du wechselst auf 2, wenn der Wert 0 ist und auf 0, wenn der Wert 2 ist. Probier es einfach mal aus.

 

Quelle:

 

Have fun!
Daniel

Link zu diesem Kommentar

Also konkret geht es um diesen Eintrag in

 

C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml

 

<audiooutput>

<ac3passthrough>false</ac3passthrough>

<audiodevice>WASAPI:{8576546F-79A2-485D-BC93-D3287713A40E}</audiodevice>

<channels>1</channels>

<dtshdpassthrough>true</dtshdpassthrough>

<dtspassthrough>false</dtspassthrough>

<guisoundmode>1</guisoundmode>

<mode>0</mode>

<multichannellpcm>false</multichannellpcm>

<normalizelevels>true</normalizelevels>

<passthroughaac>false</passthroughaac>

<passthroughdevice>DirectSound:{8576546F-79A2-485D-BC93-D3287713A40E}</passthroughdevice>

<stereoupmix>false</stereoupmix>

<truehdpassthrough>false</truehdpassthrough>

</audiooutput>

 

dieser soll durch Tastendruck meiner Fernbedienung (Programmstart durch Evenghost möglich) diesen ersetzt werden UND wieder zurück; dabei möglichst mit kurzzeitiger Meldung am Bildschirm!

 

<audiooutput>

<ac3passthrough>false</ac3passthrough>

<audiodevice>WASAPI:{2345A14D-4C70-44A8-A641-3076942090FA}</audiodevice>

<channels>1</channels>

<dtshdpassthrough>true</dtshdpassthrough>

<dtspassthrough>false</dtspassthrough>

<guisoundmode>1</guisoundmode>

<mode>0</mode>

<multichannellpcm>false</multichannellpcm>

<normalizelevels>true</normalizelevels>

<passthroughaac>false</passthroughaac>

<passthroughdevice>DirectSound:{8576546F-79A2-485D-BC93-D3287713A40E}</passthroughdevice>

<stereoupmix>false</stereoupmix>

<truehdpassthrough>false</truehdpassthrough>

</audiooutput>

 

 

 

 

Also mit Powershell dann folgendermaßen?

 

 

 

(Get-Content C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml) | Foreach-Object {$_ -replace "<audiodevice>WASAPI:{8576546F-79A2-485D-BC93-D3287713A40E}</audiodevice>","<audiodevice>WASAPI:{2345A14D-4C70-44A8-A641-3076942090FA}</audiodevice>"} | Set-Content C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml\usergui.xml

 

Wie dann zurückschalten - und was ist Powershell? Microsoft integriert?

bearbeitet von siaro
Link zu diesem Kommentar

und was ist Powershell? Microsoft integriert?

http://de.wikipedia.org/wiki/Powershell

 

Für Code bitte die Code-Tags benutzen, ist viel leserlicher für andere.

(Get-Content C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml) | Foreach-Object {$_ -replace "<audiodevice>WASAPI:{8576546F-79A2-485D-BC93-D3287713A40E}</audiodevice>","<audiodevice>WASAPI:{2345A14D-4C70-44A8-A641-3076942090FA}</audiodevice>"} | Set-Content C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml\usergui.xml
Link zu diesem Kommentar

Ich würde es ja ganz entspannt über eine simple Batch machen:

 

Leg Dir eine zweite XML an, in der Du den gewünschten Wert auf 2 änderst und speichere diese Datei unter einem anderen Namen, z.B. "usergui.tmp".

 

Dann die Batch:

ren usergui.xml usergui.old
ren usergui.tmp usergui.xml
ren usergui.old usergui.tmp
bearbeitet von Winnie75
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...