我试图从 powershell 运行一些 logparser 命令,但我在正确传递参数时遇到问题,这是我脚本中的 excert;
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:“所有 %DateGraph% 的 NULL 消息接收器”
我已经阅读了有关封装参数的大量内容,但似乎无法弄清楚如何进行这项工作!
你们可以提供的任何帮助将不胜感激。
谢谢
最佳答案
对于复杂的字符串参数,尝试使用 powershell 传递参数 here-strings这样您就不必担心转义单/双引号
更新 1 :我无法让格式化工作,所以这里是屏幕截图。
更新2 : 我终于能够格式化代码了。
d:\scripting\smtplogs\logparser\logparser.exe @"
选择前 50 个接收器,计数()
INTO %TMPOutput%\TopReceiversNDRALL.gif
从 %TempDir%\PostAll.log
发件人喜欢的地方 ''
AND Receiver NOT LIKE '%%go-fmtopper%%'
按接收方分组
按计数排序() DESC"
-i:TSV
-iSeparator:空格
-headerRow:OFF
-iHeaderFile:"header3.tsv"
-lineFilter:“+10。”
-o:图表
-chartType:ColumnClustered
-config:MyScript.js
-chartTitle:"%DateGraph% 的 NULL 消息接收器
"@
确保在此处字符串名称之间添加新行 @" 和 "@ .
关于Powershell 和 logparser 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/625067/