簡體   English   中英

如何將參數從批處理文件傳遞到PowerShell腳本?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM