marabunta
Goto Top

Powershell Function als String in Textdatei exportieren

hi,

ich möchte eine ganze funktion innerhalb eines skripts in eine neue datei exportieren.

etwa so:

###

function blubb{
$a="1"
}
function export{
write-host "dada"
}
write-host "was anderes"

###

alles was in function export steht soll dann so wie es ist unausgewertet in C:\test.ps1 exportiert werden.

inhalt C:\test.ps1:
function export{
write-host "dada"
}

danke

Content-Key: 254085

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

Printed on: April 23, 2024 at 09:04 o'clock

Mitglied: 114757
Solution 114757 Nov 06, 2014, updated at Nov 11, 2014 at 10:04:00 (UTC)
Goto Top
Moin,
pack die Function in einen Here-String und exportiere sie dann
$myfunc = @'  
function export{
    write-host "dada"  
}
'@  
Set-Content 'C:\test.ps1' -Value $myfunc  
Gruß jodel32
Member: colinardo
Solution colinardo Nov 07, 2014, updated at Nov 11, 2014 at 10:03:58 (UTC)
Goto Top
Hallo Marabunta,
oder wenn du vor und hinter die Function einen Marker setzt der den Exportteil definiert könnte das so aussehen:

deinscript.ps1
##START-EXPORT##
function export{
  write-host "dada"  
}
##END-EXPORT##

([regex]'(?s)##START-EXPORT##(.*)##END-EXPORT##').match(gc 'c:\deinscript.ps1' | out-string).Groups[1].Value | Out-File 'c:\test.ps1'  
Was bezweckst du damit eigentlich ? Kommt mir etwas komisch vor das ganze. Eventuell können wir dir da bei deinem Vorhaben einen etwas besseren Vorschlag machen.

Grüße Uwe
Member: Marabunta
Marabunta Nov 11, 2014 at 09:50:25 (UTC)
Goto Top
Ein Skript erstellt eine Aufgabe, exportiert sich selbst ohne die Aufgabenerstellung und führt verschiedene Dinge aus.
Die Aufgabe startet dann das exportierte Skript.
Damit kann ich u.a. eine Tabelle aktualisieren lassen und ggf. Aktualisierungen des Skripts vornehmen.

Leiden kann ich nicht einfach prüfen ob der Task existiert und ggf. neu erstellen, das Skript würde in dem Fall ja gar nicht starten und ich bräuchte ein drittes Skript...

Jedenfalls sind das Bausteine für ein Skript die eine Verwaltung/Administration erleichtern sollen.