Domanda

Sto cercando di eseguire alcuni comandi logparser da PowerShell ma sto avendo problemi con il passaggio corretto degli argomenti, ecco l'espressione dal mio script;

d: \ scripting \ smtplogs \ logparser \ logparser.exe " SELEZIONA IL MIGLIORE 50 Ricevitore, COUNT () IN% TMPOutput% \ TopReceiversNDRALL.gif FROM% TempDir% \ PostAll.log DOVE Mittente 'lt &; >' E IL ricevitore NON MI PIACE '%% go-fmtopper %%' Raggruppa per ricevitore ORDINA PER CONTEGGIO () DESC & Quot; -i: TSV -iSeparator: spazio -headerRow: OFF -iHeaderFile: " header3.tsv " &: -LineFilter.; & Quot +10 quot; -o: CHART -chartType: ColumnClustered -config: MyScript.js -chartTitle: " Ricevitori per messaggi NULL TUTTI per% DateGraph% "

Ho letto un sacco di argomenti incapsulati ma non riesco a capire come farlo funzionare!

Qualsiasi aiuto che voi ragazzi potreste fornire sarebbe molto apprezzato.

Grazie

È stato utile?

Soluzione

Per un parametro stringa complesso, prova a passare l'argomento usando powershell stringhe qui in modo da non doverti preoccupare di sfuggire alle virgolette singole / doppie

UPDATE1 : non sono riuscito a far funzionare il fomratting, quindi ecco lo screenshot. alt text

UPDATE2 : Finalmente sono riuscito a formattare il codice.

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%
"@

Assicurati di aggiungere una nuova linea tra i moniker qui stringa @ " e " @ .

Altri suggerimenti

Cordiali saluti, se non hai bisogno di alcuna espansione di PowerShell, allora stai meglio usando stringhe qui tra virgolette singole. Ad esempio, la seguente stringa tra virgolette doppie potrebbe causare problemi:

@"
$(get-process <some_core_os_process> | stop-process)
"@

dove quanto segue è innocuo:

@'
$(get-process <some_core_os_process> | stop-process)
'@

Non è probabile che la tua stringa qui contenga qualcosa di così ovvio, ma un semplice $ f si risolverà in nulla, cioè scomparirebbe dalla stringa originale. A meno che, ovviamente, $ f non sia stato definito e impostato su qualcosa di diverso da null o vuoto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top