multimania
Goto Top

Powershell: Variable in Textdatei füllen

Hallo,

ich versuche eine Textdatei aus einer Vorlage zu erzeugen und Variable in der Textdatei durch Variable aus dem Script zu ersetzen.
Das klappt auch soweit, jedoch wird ab der 2. Zeile immer ein Leerzeichen vorangestellt.
Ich finde aber den Fehler nicht face-sad

Ich hoffe hier kann mir jemand helfen.

Der Fehler muss in dieser Zeile liegen:

Invoke-Expression ('$Sig_1 = @"' + "`n" + (Get-Content -Path "$Sig1ContentHTM" | ForEach-Object { $_ + "`n" }) + "`n" + '"@')  

Danke und Gruß
Multi

Content-ID: 642590

Url: https://administrator.de/forum/powershell-variable-in-textdatei-fuellen-642590.html

Ausgedruckt am: 22.12.2024 um 18:12 Uhr

mayho33
mayho33 20.01.2021 um 23:47:02 Uhr
Goto Top
Schau dir doch mal die Cmdlets Out-File und Set-Content an.

Grüße!
Multimania
Multimania 21.01.2021 um 08:27:32 Uhr
Goto Top
Hallo,

wie genau? Ich gebe $Sig_1 per Out-File aus, aber ich sehe ja das die Variable schon falsch gefüllt wird.

Gruß
Multi
mayho33
mayho33 21.01.2021 aktualisiert um 09:59:26 Uhr
Goto Top
Was genau willst du nchmal machen? Ich habe folgendes verstanden:

  • In einer Vorlage steht Text der aussieht wie Variablen (also $var1, $var2, usw.)
  • Diese Variablen willst du durch Variablen in deinen Script ersetzen?
  • Dann das neue Content schreiben (in einem neuen File? Das bestehende überschreiben? Anhängen?)

Wozu das Invoke-Expression?

MeinTextDokument.txt
$ABCD
$ABCD
ABCD
ABCD
$JUJUJUJU = 14

PS-Script
$Sig_1 = Get-Content "C:\__TEST\MeinTextDokument.txt"  

for ($i = 0; $i -lt $Sig_1.Count; $i++) { 
    if($Sig_1[$i].Contains('$ABCD')) {  
        $Sig_1[$i] = '$2345'  
    }    
}

Set-Content -Value $Sig_1 -Path "C:\__TEST\MeinTextDokument2.txt"