You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中通过命令为参数提供值

解决PowerShell脚本传参后仍提示输入Send-MailMessage的To参数问题

出现这个问题的核心原因是你的脚本没有正确接收外部传入的-To参数,或者在调用Send-MailMessage时没有使用该参数,导致PowerShell触发了Send-MailMessage的必填参数交互式提示。按以下步骤修复:

  1. 在脚本开头定义参数块
    首先要让脚本能识别并接收-To参数,在autoemail.ps1的最顶部添加参数定义:

    param(
        # 定义To参数,支持单个或多个邮箱地址
        [Parameter(Mandatory=$true)]
        [string[]]$To
    )
    

    这里用[string[]]类型是因为Send-MailMessage的-To参数接受字符串数组,可同时传入多个邮箱(比如-To 'user1@example.com','user2@example.com')。

  2. 在脚本中传递参数给Send-MailMessage
    确保脚本内调用Send-MailMessage时,明确传入$To变量,而不是省略该参数。示例完整调用:

    Send-MailMessage -To $To `
                     -From 'sender@example.com' `
                     -Subject '自动邮件测试' `
                     -Body '这是测试邮件内容' `
                     -SmtpServer 'smtp.example.com'
    

    注意:Send-MailMessage还有其他必填参数(比如-From、-SmtpServer),如果这些参数也没提供,同样会触发交互式提示,需一并补充完整。

  3. 验证命令行传参格式
    你的调用命令本身格式没问题,但要确保邮箱地址是完整格式(比如'user@sample.email.com',而非仅域名'sample.email.com'),否则邮件发送会失败。正确调用示例:

    PS C:\Users\mydesktop\Desktop> .\autoemail.ps1 -To 'user@sample.email.com'
    

    (注:如果脚本不需要在当前会话加载,直接用.\autoemail.ps1而非. .\autoemail.ps1即可,后者是将脚本内容导入当前会话的写法)

内容的提问来源于stack exchange,提问作者user21446047

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:42:40