Jump to content

PS - Befehl in Variable schreiben


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

Empfohlene Beiträge

Schönen guten Morgen,

 

ich hab da ein Anliegen und ich hoffe, ihr könnt mir helfen. Ich habe ein altes batch script, dass ich nun durch powershell ablösen möchte. Dort fand ich es früher ganz angenehm, dass ich in den 1. Zeilen folgendes griffbereit zum späteren Anpassen hatte:

 

set mailokay = c:\tools\blat.exe -server ....-to user1 ...
set mailerror = c:\tools\blat.exe -server ....-to user1, user2....

 

Im Code weiter unten konnte ich dann einfach darauf verweisen. mit %mailerror% usw.

 

Das ganze konnte ich nun Abbilden in Powershell wie folgt:

 

$mailokay = { Send-MailMessage ...-Attechment $logfile ....}

 

Und rufe es dann später auf mit $mailokay.invoke()

Das konnte ich gestern im Web finden. Nun möchte ich das gleiche hiermit machen, aber das klappt nicht.

 

$logging = {out-file -filepath $log -append }

 

sodass ich später bei jeder Ausgabe eines Fehlertextes, mir den in die logdatei schreiben lassen kann in der Art:

 

echo "Dies ginbg nun mal in die Hose" |
$logging.invoke()

 

Wenn ich out-file an die stelle schreibe gehts, ich wollte mir das aber gerne zentral erhalten, um es bei einer Änderung nur einmal tun zu müssen.

Fehlermeldung besagt "Ausdrücke sind nur als erstes Element einer Pipeline zulässig." Muss ich das anders lösen?

 

Vielen Dank schonmal. Grüße

Mag

Link zu diesem Kommentar

Hi Dukel,

 

vielen Dank für die fixe Antwort.

Hmmm, okay. Mit Funktionen hab ich gestern das erste mal angefangen, ich werde das mir dann mal anschauen. Das besagte Script hat nun auch ein Paar Funktionen, aber wenn ich eine neue funktion aufrufe, verlässt er mir dann nicht den abarbeitungsweg und springt nur zu der out-file funktion?!

 

Scheint aber sehr aufwendig zu sein, für nur das out-file ...

Aber danke, ich werde mir das mal zu Gemüte führen.

 

Der Tip mit dem Apache muss ich später mal genauer schauen, merci!

 

Grüße

Mag

Link zu diesem Kommentar

Update:

Hab das mit der Funktion falsch verstanden. Ich dachte ich müsste jedesmal die 3 Zeilen hinter dem echo "Fehlermeldung". War natürlich quatsch.

 

Habs nun testen können, klappt wunderbar.

Danke !

 

$logpath = "c:\temp\log.txt"
$script = {Out-File $logpath -append }
$scriptblock = [scriptblock]::Create($script)
'Ganz viele Fehler
und noch mehr' | Invoke-Command -ScriptBlock $scriptblock

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...