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-Key: 642590

Url: https://administrator.de/contentid/642590

Printed on: April 24, 2024 at 19:04 o'clock

Member: mayho33
mayho33 Jan 20, 2021 at 22:47:02 (UTC)
Goto Top
Schau dir doch mal die Cmdlets Out-File und Set-Content an.

Grüße!
Member: Multimania
Multimania Jan 21, 2021 at 07:27:32 (UTC)
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
Member: mayho33
mayho33 Jan 21, 2021 updated at 08:59:26 (UTC)
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"