我有一个使用命令行应用程序生成PDF报告的脚本。Powershell - 如何在参数列表中传递变量
下面是批量形式(日期变量)的脚本:
QsrCrExport.exe -f"C:\SMTP\Reports\Speed of Service Summary" -o"C:\SMTP\Daily_Archive\SpeedofService.pdf" -a"Date:%one%,%one%" -epdf
我试图实现以上到PowerShell中使用的启动过程与论点,但似乎无法得到的参数正常工作
$crexport = "C:\Program Files (x86)\ReportViewer\Bin\QsrCrExport.exe";
$arguments = '-f"C:\ProgramData\ReportViewer\Reports\Speed of Service Summary" -o"C:\SMTP\Generated\SpeedofService.pdf" -a"Date:$reportdate1,$reportdate2" -epdf'
Start-Process $crexport $arguments -Wait;
我知道这是行不通的包裹在单引号的变量不会被使用的值替换,但是如果我删除参数中的所有双引号和包装整条生产线在双引号它还是赢了没有工作。
我很新的PowerShell,所以如果这是非常直截了当的道歉。
http://stackoverflow.com/questions/38900961/passing-variable-arguments-using-powershells-start-process-cmdlet。这一个很薄弱,但答案是正确的。你需要将你的参数作为数组___传递。如果您同意,将会被标记为愚蠢。还有关于调用exe的其他答案,但这是我可以罚款的开始进程没有埋没的最好的答案。 – Matt