[英]How to pass parameters to PowerShell script from batch file?
這應該是一個簡單的語法修復程序,我只是無法將所有Google搜索建議都整理一下。
從PowerShell終端調用時,ps1腳本確實可以工作,我可以傳遞所有三個參數並接收電子郵件。 嘗試從批處理文件(cmd)運行時
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
批處理腳本:
powershell.exe -ExecutionPolicy Bypass -command "C:\scripts\send_email.ps1 -recipients '%recipients%' -subject '%subject%' -body '%body%'"
調用bath腳本時,出現以下錯誤:
該字符串缺少終止符:'。 + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordEx接收+ FullyQualifiedErrorId:TerminatorExpectedAtEndOfString
為什么不使用-File
參數?
powershell -ExecutionPolicy Bypass -File C:\Scripts\send_email.ps1 -Recipients '%recipients%' -Subject '%subject%' -Body '%body%'
(此外:如果您堅持使用-Command
,那么為什么需要該腳本?直接運行Send-MailMessage
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.