명령 줄 응용 프로그램을 사용하여 PDF 보고서를 생성하는 스크립트가 있습니다.Powershell - 인수 목록에서 변수를 전달하는 방법
QsrCrExport.exe -f"C:\SMTP\Reports\Speed of Service Summary" -o"C:\SMTP\Daily_Archive\SpeedofService.pdf" -a"Date:%one%,%one%" -epdf
내가 인수-프로세스를 시작하여 위의 파워 쉘에 구현하기 위해 노력하고있어하지만 인수가 제대로
을 작동시킬 수없는 것 : 여기 배치 형태로 스크립트 (날짜 변수)입니다$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에 익숙합니다. 정말 사과합니다.
Start-Process -FilePath '"C:\Program Files (x86)\ReportViewer\Bin\QsrCrExport.exe"' -ArgumentList @('-f"C:\ProgramData\ReportViewer\Reports\Speed of Service Summary"', '-o"C:\SMTP\Generated\SpeedofService.pdf"', '-a"Date:$reportdate1,$reportdate2"', '-epdf') -wait
해야그 일 :
http://stackoverflow.com/questions/38900961/passing-variable-arguments-using-powershells-start-process-cmdlet. 이것은 약하지만 대답은 정확합니다. 인수를 array__로 __ 통과해야합니다. 동의하면 속임수로 표시됩니다. exe를 호출하는 것에 대한 다른 대답이 있습니다. 그러나 그것은 내가 묻히지 않은 시작 프로세스에 대해 잘할 수있는 최선의 방법입니다. – Matt