如何将参数从批处理文件传递到PowerShell脚本?

时间:2019-08-30 16:48:53

标签: powershell batch-file

这应该是一个简单的语法修复程序,我只是无法将所有Google搜索建议都整理一遍。

从PowerShell终端调用ps1脚本时,它确实可以工作,我可以传递所有三个参数并接收电子邮件。 尝试从批处理文件(cmd)运行时

@Query(value = "SELECT TC FROM testcases TC ")
List<TestcaseEntity> filterHMI(@Param("testcases") List<TestcaseEntity> lstTestcases);

批处理脚本:

ShellScript:
# get parameters
[CmdletBinding()]
param(
        $recipients,
        $subject,
        $body
)
#$ParamSetName = $PsCmdLet.ParameterSetName
# send email
Send-MailMessage -From "noreply@snorepl.com" -To $recipients -Subject $subject -SmtpServer  'somesmtpserver.somedomain.com' -BODY $body

调用Bath脚本时,出现以下错误:

  

字符串缺少终止符:'。       + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordEx接收      + FullyQualifiedErrorId:TerminatorExpectedAtEndOfString

1 个答案:

答案 0 :(得分:0)

为什么不使用-File参数?

powershell -ExecutionPolicy Bypass -File C:\Scripts\send_email.ps1 -Recipients '%recipients%' -Subject '%subject%' -Body '%body%'

(此外:如果您坚持使用-Command,为什么需要脚本?直接运行Send-MailMessage。)