frxhb1
Goto Top

Mit Powershell eine Zeile einer XML Batch Datei bearbeiten

Hallo zusammen,

ich bin nicht grade der beste im Umgang mit Powershell oder mit XML Dateien, deswegen wende ich mich heute an euch.

Im Folgenden Beispiel versuche ich unter <FolderPairs> <Pair> <Left> den Pfad zu ändern. Mein Ziel ist es, das Powershell den Nutzer abfragt (oder selber erkennen kann) welcher Pfad dort stehen soll (also welcher Benutzer angemeldet ist) und dies dann nach \Users setzt. Abschließend soll das ganze wieder als Batch abgespeichert werden.

Der XML-Code:

<?xml version="1.0" encoding="utf-8"?>  
<FreeFileSync XmlType="BATCH" XmlFormat="15">  
    <Compare>
        <Variant>TimeAndSize</Variant>
        <Symlinks>Exclude</Symlinks>
        <IgnoreTimeShift/>
    </Compare>
    <Synchronize>
        <Variant>Mirror</Variant>
        <DetectMovedFiles>false</DetectMovedFiles>
        <DeletionPolicy>RecycleBin</DeletionPolicy>
        <VersioningFolder Style="Replace"/>  
    </Synchronize>
    <Filter>
        <Include>
            <Item>*</Item>
        </Include>
        <Exclude>
            <Item>\System Volume Information\</Item>
            <Item>\$Recycle.Bin\</Item>
            <Item>\RECYCLE?\</Item>
            <Item>*\desktop.ini</Item>
            <Item>*\thumbs.db</Item>
        </Exclude>
        <TimeSpan Type="None">0</TimeSpan>  
        <SizeMin Unit="None">0</SizeMin>  
        <SizeMax Unit="None">0</SizeMax>  
    </Filter>
    <FolderPairs>
        <Pair>
            <Left>C:\Users\Testbenutzer\Pictures\Saved Pictures</Left>                                       <-Hier soll nach \Users der individuelle Pfad stehen und nicht "Testbenutzer "  
            <Right>Z:\FreeFileSyncBackup</Right>
        </Pair>
    </FolderPairs>
    <Errors Ignore="false" Retry="0" Delay="5"/>  
    <PostSyncCommand Condition="Completion"/>  
    <LogFolder/>
    <EmailNotification Condition="Always"/>  
    <Batch>
        <ProgressDialog Minimized="false" AutoClose="false"/>  
        <ErrorDialog>Show</ErrorDialog>
        <PostSyncAction>None</PostSyncAction>
    </Batch>
</FreeFileSync>


Ich hoffe das mir einer helfen kann und bedanke mich im voraus. face-smile

Liebe Grüße
Kommentar vom Moderator tomolpi am 23.04.2020 um 15:28:05 Uhr
Code-Tags für XML hinzugefügt

Content-ID: 566946

Url: https://administrator.de/forum/mit-powershell-eine-zeile-einer-xml-batch-datei-bearbeiten-566946.html

Ausgedruckt am: 23.04.2025 um 06:04 Uhr

erikro
Lösung erikro 23.04.2020 um 15:15:00 Uhr
Goto Top
Moin,

Zitat von @Frxhb1:
Im Folgenden Beispiel versuche ich unter <FolderPairs> <Pair> <Left> den Pfad zu ändern. Mein Ziel ist es, das Powershell den Nutzer abfragt (oder selber erkennen kann) welcher Pfad dort stehen soll (also welcher Benutzer angemeldet ist) und dies dann nach \Users setzt. Abschließend soll das ganze wieder als Batch abgespeichert werden.

Als Batch? Oder als XML? Ansonsten ist das ganz simpel. Guckst Du hier:
https://www.langlitz-it.de/?p=1297

hth

Erik
143728
Lösung 143728 23.04.2020 aktualisiert um 15:34:24 Uhr
Goto Top
XML Batchdatei, Powershell?? Wat soll dat sein 😆😆, entweder oder, für eins solltest du dich dann doch schon entscheiden...
Lieber gleich clean als pures Powershell...
$file = 'd:\datei.xml'  
$xml = [xml](gc $file)
$xml.FreeFileSync.FolderPairs.Pair.Left = "$env:USERPROFILE\Pictures\Saved Pictures"  
$xml.Save($file)
Frxhb1
Frxhb1 23.04.2020 um 15:38:09 Uhr
Goto Top
Danke, genau sowas habe ich gesucht. Hat geklappt!face-smile