PowerShell- und Logparser -Argumente
-
05-07-2019 - |
Frage
Ich versuche, einige LogParser -Befehle von PowerShell auszuführen, aber ich habe Probleme damit, die Argumente richtig zu übergeben. Hier ist der Auszug aus meinem Skript.
D: scripting SMTPLOGS LogParser logParser.exe "Wählen Sie Top 50 -Empfänger aus, zählen Sie (zählen Sie sie) In%tmpoutput% topReciversndall.gif von%tempdir% postall.log wobei der Absender '<>' und Empfänger nicht mögen '%% go-fmtopper %%' Gruppe nach Empfängerbestellung nach Count (Count (Count) Desc "-i: tsv -ISeparator: Space -Hadeerrow: Off -iheaderFile:" Header3.tsv "-LineFilter:"+10. "-O: chart -chartType: columnclustered -config: myscript.js -charttitle:" Empfänger Für NULL -Nachrichten alle für %DateGraph %"
Ich habe Ladungen über die Einkapselung von Argumenten gelesen, kann aber nicht herausfinden, wie man diese Arbeit macht!
Jede Hilfe, die ihr leisten könnt, wäre sehr geschätzt.
Vielen Dank
Lösung
Versuchen Sie für einen komplexen String -Parameter, das Argument mit PowerShell zu übergeben Hier Damit müssten Sie sich keine Sorgen machen, Single/Double -Zitate zu entkommen
Update1: Ich konnte das Fomrating nicht zum Laufen bringen, also hier ist der Screenshot.
Update2: Ich konnte den Code endlich formatieren.
d:\scripting\smtplogs\logparser\logparser.exe @" SELECT TOP 50 Receiver, COUNT() INTO %TMPOutput%\TopReceiversNDRALL.gif FROM %TempDir%\PostAll.log WHERE Sender LIKE '' AND Receiver NOT LIKE '%%go-fmtopper%%' GROUP BY Receiver ORDER BY COUNT() DESC" -i:TSV -iSeparator:space -headerRow:OFF -iHeaderFile:"header3.tsv" -lineFilter:"+10." -o:CHART -chartType:ColumnClustered -config:MyScript.js -chartTitle:"Receivers for NULL messages ALL for %DateGraph% "@
Stellen Sie sicher, dass Sie eine neue Linie zwischen den hier-String-Monikern hinzufügen @" und "@.
Andere Tipps
Zu Ihrer Information, wenn Sie keine variable PowerShell -Expansion benötigen, sind Sie hier besser dran, wenn Sie eine einzelne hier angegebene Zeichenfolgen verwenden. Zum Beispiel kann die folgende hier zitierte String -String Ihnen eine Trauer verursachen:
@"
$(get-process <some_core_os_process> | stop-process)
"@
wo Folgendes harmlos ist:
@'
$(get-process <some_core_os_process> | stop-process)
'@
Es ist nicht wahrscheinlich, dass Ihre hier etwas so Offensichtliche etwas so Offensichtliches enthält, aber ein einfaches $ f würde sich auf nichts entschließen, dh es würde aus der ursprünglichen Zeichenfolge verschwinden. Es sei denn, $ f wurde natürlich definiert und auf etwas anderes als Null oder Leer eingestellt.