如何定义函数的返回类型/OutputType

2023-12-15

为什么下面的类型会改变?

function SomeFunction($SomeParameter){
    return $SomeParameter
}

我想我需要设置一个返回类型,但是如何设置呢?

一个例子是使用:

$NewFolder=Join-Path $CurrentFolder -ChildPath $FolderName
$Tmp=SomeFunction($NewFolder)

Now $Tmp是一个数组而不仅仅是一个路径


While 这个答案解释了这种行为你看到了,在这里我将尝试回答实际的问题:如何声明函数的预期输出类型!

您可以通过添加[OutputType]归因于param()你的函数块 - 所以你要做的第一件事就是跳过 C# 风格的参数列表并声明一个正确的param改为阻止:

function SomeFunction
{
    param($SomeParameter)

    return $SomeParameter
}

现在我们只需要添加[OutputType]属性装饰器:

function SomeFunction
{
    [OutputType([string])]
    param($SomeParameter)

    return $SomeParameter
}

因为在本例中我们只是按原样返回参数参数值,所以我们应该表现得很好并确保它实际上也是一个字符串:

function SomeFunction
{
    [OutputType([string])]
    param(
        [string]$SomeParameter
    )

    return $SomeParameter
}

值得注意的是[OutputType()] makes 没有保证至于执行期间发出的对象类型,它只是函数作者指示的一种方法intended输出类型。

阅读更多关于[OutputType] in the about_Functions_OutputTypeAttribute帮助文件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何定义函数的返回类型/OutputType 的相关文章

  • 如何使用类在 PowerShell 中实现事件处理

    我希望能够创建一个自定义事件 该事件将触发订阅该事件的函数或对象 我查看了一些功能 例如 New Event and Register ObjectEvent 但我不完全确定如何有效地将它们组合在一起 我想要的想法是让一个函数在引发某个事件
  • 获取在特定日期之后修改的一组文件

    有没有人有一个方便的 powershell 脚本根据修改日期从 TFS 获取一组文件 我想说 给我这个文件夹 或子文件夹 中在 X Y ZZZZ 之后修改的所有文件 并将这些文件转储到它们通常所在的文件夹之外的文件夹中 我知道足够的 pow
  • 无法使用 Powershell 2.0 压缩文件

    Q1 我尝试了几种压缩方法 但在我的机器上都不起作用 我只能使用外部压缩工具 7z exe 来压缩文件 但我没有权限在 serverA 中安装 7z exe 文件 也没有权限将 powershell 更新到 v5 目前使用powershel
  • 如何在不安装 AWS SDK 的情况下通过 Powershell 从 S3 下载文件?

    我想使用 Windows Powershell 从我的 AWS S3 存储桶下载文件 我无法安装任何 AWS 软件 需要创建一个 API 才能访问 AWS S3 中的文件 我使用Postman测试该文件是否可访问并且成功 鉴于这一成功 我尝
  • powershell cmdlet 的枚举参数

    我正在 powershell 上编写一个 cmdlet 脚本 我想使用 eum 作为参数之一 但我不知道在哪里放置枚举定义 以便它对于 cmdlet 参数声明可见 例如 我有这样的脚本参数定义 cmdletbinding param Par
  • EWS - 访问共享日历项目/约会

    我正在尝试获取共享日历的所有项目 我已关注EWS 访问所有共享日历 https stackoverflow com questions 23766747 ews access all shared calendars 23773834 23
  • 使用 PEM 证书验证 Powershell 中的 XML 签名

    我正在尝试创建一个 powershell 脚本来使用 XML 文档中的数据 然而 在进行任何工作之前 我需要通过验证签名来验证 XML 没有被篡改 我有一份用于以 PEM 格式签署 XML 的证书的公钥副本 但我不知道如何让 powersh
  • 查找“未找到身份”的角色分配的可靠方法是什么?在 Azure 上使用 Powershell?

    如果您在 Azure 中分配角色 然后在删除角色分配之前删除该身份 则会出现 找不到身份 的情况 健康 状况 它是无害的 但它会占用角色分配空位并使角色分配列表变得混乱 我想找到并删除这些 我想这个 Get AzRoleAssignment
  • Powershell从字符串中获取数字

    大家好 我正在尝试使用 powershell 从用户 ID 中获取号码 我们使用的格式是名字的第一个字母 姓氏的前四个字母和学生 ID 因此名为 John Smith ID 123456 的学生将是 jsmit123456 如果用户的名字少
  • 查询计算机列表 - 输出上次登录用户和上次登录日期

    我正在创建一个脚本来从 txt 文件中检索所有计算机名称 然后对它们进行查询 计算机名 用户名 最后登录计算机的用户名 上次登录 使用的日期 这就是我所拥有的 Clear Host machines Get Content Path C U
  • 使用 powershell 执行 .sql 脚本并将输出存储在 .sql 文件中

    我正在尝试从 powershell 运行 sql 脚本 sql 文件并将结果保存到 sql 文件中 概述 SQL 数据库恢复需要用户和权限备份预恢复 一旦恢复完成 我们需要在数据库上执行输出 我们预恢复的用户权限备份 这是我的脚本 当我执行
  • powershell 和 cmd 之间的文件大小不同[重复]

    这个问题在这里已经有答案了 我正在使用一点processconf js工具来构建configuration json来自多个文件 json files 这是我正在使用的命令 node processconf js file1 json fi
  • 在 DownloadProgressChanged 事件期间从 DownloadFileAsync 对事件处理程序的更新缓慢

    我的问题 我正在编写一个 PowerShell 脚本 在继续执行其他任务之前 该脚本需要从远程 Web 服务器下载几个大文件 我的项目要求之一是显示每次下载的进度 以便最终用户知道发生了什么 对另一个 SO 问题的回复包含一个使用注册事件和
  • 命令提示符 con 的 Powershell 通讯员?

    例如 我想在屏幕上显示输出并将其复制到剪贴板 dir tee con clip 上面的方法不起作用 因为con在 PowerShell 的文件系统中不被识别为控制台 还可能存在以下场景 Get LongLongOutput tee con
  • 为所有用户持久安装 PowerShell 模块

    我正在通过以下方式安装 PowerShell 模块八达通部署 http octopusdeploy com 到许多不同的服务器上 出于测试目的 我按照 Microsoft 文档的指导进行了安装PowerShell模块 https learn
  • 我想在 Red Hat Linux 服务器中执行 .ps1 powershell 脚本

    我有一个在窗口中执行的 ps1 powershell 脚本 但我的整个数据都在 Linux 服务器中 有什么可能的方法可以让我在红帽服务器中执行 powershell 脚本 powershell脚本是 Clear Host path D D
  • 使用 Powershell 远程安装 .msi

    我已经让他使用这个论坛上存在的代码来跟踪代码 cls computername Get Content C Users C201578 db Documents server txt sourcefile iceopsnas LNT Sof
  • 有哪些基于对象的 shell?

    我打算写一个面向对象的shell 基于Python 我已经有很多想法了 但在实现它之前 我想通过一些现有的 shell 来激发我的灵感 我所说的面向对象的基本意思是 参数不仅仅是字符串数组 而且是对象数组 返回值也是一个对象 不仅有 std
  • 在 React 应用程序的 shell 脚本中设置环境变量

    我正在尝试在 powershell 和 bash 脚本中设置一些环境变量 并在 ReactJS 应用程序中读取它们 shell脚本很简单 env AUTHDOMAIN some domain com env AUTHCLIENTID bun
  • 通过PowerShell检索Azure AD应用程序的“API权限”

    出于报告和监视的目的 我想检索应用程序 应用程序注册 的 Azure 门户中显示的信息以获取 API 权限 我尝试过以下代码 app Get AzureADApplication ObjectId aa7e174d 2639 4ac7 9b

随机推荐