我试图从powershell运行一些logparser命令但是我遇到了正确传递参数的问题,这是我脚本中的例外情况;

d:\ scripting \ smtplogs \ logparser \ logparser.exe <!>; SELECT TOP 50 Receiver,COUNT()INTO%TMPOutput%\ TopReceiversNDRALL.gif FROM%TempDir%\ PostAll.log WHERE Sender LIKE 'LT <!>; <!> GT;' AND Receiver NOT LIKE'%% go-fmtopper %%'GROUP BY Receiver ORDER BY COUNT()DESC <!> quot; -i:TSV -iSeparator:space -headerRow:OFF -iHeaderFile:<!> quot; header3.tsv <!> quot; <!>:-lineFilter。; <!> QUOT 10 QUOT; -o:CHART -chartType:ColumnClustered -config:MyScript.js -chartTitle:<!> quot; NULL消息的接收者ALL for%DateGraph%<!>;

我已阅读有关封装参数的负载,但似乎无法弄清楚如何使其工作!

非常感谢你们提供的任何帮助。

由于

有帮助吗?

解决方案

对于复杂的字符串参数,尝试使用powershell传递参数 here-strings ,这样您就不必担心转义单引号/双引号

UPDATE1 :我无法完成工作,所以这里是截图。

UPDATE2 :我最终能够格式化代码。

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

确保在here-string标记 @ <!>; <!>“@ 之间添加新行。

其他提示

仅供参考,如果您不需要任何PowerShell变量扩展,那么最好使用单引号字符串。例如,以下双引号字符串可能会让您感到悲伤:

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

以下内容无害:

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

你的here字符串不太可能包含如此明显的东西,但是简单的$ f会解析为什么,即它会从原始字符串中消失。当然,除非定义$ f并将其设置为null或empty以外的其他内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top