【问题标题】:PowerShell Slack FunctionPowerShell 松弛函数
【发布时间】:2019-08-06 16:05:48
【问题描述】:

我正在尝试编写一个 PowerShell 函数来调用 Slack webhook。我从Reddit post 中获取了该函数,但该函数似乎因解析错误而失败。我还删除了 webhook。

代码如下:

function Send-SlackMessage {
    Param (
        [Parameter(Mandatory=$true, Position=0)]$Text,
        $Url = "https://hooks.slack.com/services/xxxxx",
        # Parameters below are optional and will fall back to the default
        $Username = "XXXXXXX",
        $Channel = "XXXXXXX",
        $Emoji = "XXXXXX"
    )

    $body = @{ text=$Text; channel=$Channel; username=$Username; icon_emoji=$Emoji } | ConvertTo-Json
    Invoke-WebRequest -Method Post -Uri $Url -Body $body
}

和错误:

在行:12 字符:67 + ... y = @{ 文本=$Text;频道=$频道;用户名=$用户名; icon_emoji=$ ... + 缺少 '=' @{ text=$Text;频道=$频道;用户名=$用户名; icon_emoji=$ ... 哈希文字不完整。 + CategoryInfo :ParserError (:) [], ParentContainsErrorRecordException + FillyQualifiedErrorId : MissingEqualsInHashLiteral

【问题讨论】:

  • 仅供参考,但现在有一个可用的 PowerShell 模块:PSSlack。代码找到here

标签: powershell


【解决方案1】:

函数名在哪里?您在第二个参数之后缺少一个逗号,并且在最后一个参数之后有一个额外的逗号。

function whatever ()
{
param (
     [Parameter(Mandatory=$true, Position=0)]$Text,
     $Url="https://hooks.slack.com/services/xxxxx",
     # Parameters below are optional and will fall back to the default
        $Username = "XXXXXXX",
        $Channel = "XXXXXXX",
        $Emoji = "XXXXXX"
    )

    $body = @{ text=$Text; channel=$Channel; username=$Username; icon_emoji=$Emoji } | ConvertTo-Json
    Invoke-WebRequest -Method Post -Uri $Url -Body $body
}

【讨论】:

  • 我想也许我的函数格式不正确?我确实检查了我的原始代码,参数中的逗号是正确的。对不起,在没有可用复制/粘贴的 VM 上工作。似乎错误来自函数的“主体”部分。我确实更改了函数调用的格式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多