如何定义函数的返回类型/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强类型环境变量

    我想设置一个强类型环境变量 当我使用 env 时它似乎 丢失 了它的类型 在原始函数中它工作正常 function Create ThisCrap Microsoft ApplicationInsights TelemetryClient
  • 如何在 PowerShell 中处理命令行参数

    处理命令行参数的 最佳 方法是什么 似乎有几个关于 最佳 方法是什么的答案 因此我陷入了如何处理像这样简单的事情上 script ps1 n name d domain AND script ps1 d domain n name 有没有一
  • 使用powershell计算子文件夹中具有特定名称的文件数量

    因此 我开始解决一个问题 我需要知道某个名称的子文件夹中有多少个文件 这些文件在整个目录中重复多次 我想要计算的所有文件夹都具有相同的名称 例如 Main Folder Subfolder Folder I want to count Fo
  • 如何使用 PowerShell 捕获全局击键?

    Powershell 可以监听并捕获按键吗 是否可以编写一个 PowerShell 脚本 例如自动热键 https www autohotkey com 位于托盘中并等待您按下预定义的键盘键才开始执行 并且每次按下所述键时可能不会返回而是触
  • 使用 Powershell 添加 IIS 8.5 自定义日志记录字段

    带有 IIS 8 5 的 Windows Server 2012 R2 允许使用增强型日志记录自定义日志字段 http www iis net learn get started whats new in iis 85 enhanced l
  • PowerShell 输出在函数之间交叉

    我正在 Windows 10 上的 5 1 版本中编写一个 PowerShell 脚本 该脚本获取有关本地系统 以及最终其子网 的某些信息并将其输出到文本文件中 起初 我将所有方面都集中在一个函数中 我在输出时遇到了输出问题getUsers
  • 将 Powershell 对象的类型名称从 PSCustomObject 更改为我选择的名称?

    我有一个使用自定义对象的脚本 我用这样的伪构造函数创建它们 function New TestResult trProps name repo vcs Skipped clean New StageResult This is anothe
  • 使用 shell_exec 将 PHP 转换为 Powershell

    如果我运行 output shell exec powershell get service dhcp 我得到了 dhcp 服务的完美输出 显示正在运行 但如果我运行 output shell exec powershell get use
  • 将服务器添加到 SQL Management Studio

    我想将不同服务器上的一堆 SQL 2000 2005 的混合 服务器实例添加到我的 SSMS SQL Managment Studio 注册服务器 我正在遵循本教程here http sev17 com 2008 12 registerin
  • 隐藏powershell输出

    我有以下脚本 param 参数 强制 true 字符串 dest New Item force path dest 1 itemtype directory New Item force path dest 2 itemtype direc
  • Powershell 中的反斜杠

    为什么 split 参数的字符串需要两个反斜杠 而 join 参数的字符串只需要一个反斜杠 反引号是 Powershell 中的转义字符 字符前面的反斜杠有什么作用 path C folder test unit1 testing resu
  • 拖放到 Powershell 脚本

    我以为我已经找到了这个问题的答案 但我玩得越多 我就越发现它是 Powershell 的设计缺陷 我想拖放 或使用发送到机制 将多个文件和 或文件夹作为数组传递到 Powershell 脚本 测试脚本 Test ps1 param stri
  • SQL Server:删除除系统数据库之外的所有数据库

    在 PowerShell 中 我使用以下代码删除所有非系统 SQL Server 数据库 invoke sqlcmd ServerInstance sqlInstanceName U sqlUser P sqlPass Query EXEC
  • SQL Server 2008:如何使用 powershell 获取“消息”选项卡(在 Management Studio 中)输出

    我在用invoke sqlcmd管理我的数据库 它工作得很好 我将 Management Studio 中 结果 选项卡的输出保存到日志文件中 当我做一个BACKUP DATABASE 输出是在 消息 选项卡上完成的 我想将其保存在日志文件
  • Powershell:根据属性过滤属性

    我对 PowerShell 的自学经验有限 所以这可能是一些基本的东西 但我似乎无法正确理解 我在 Active Directory 中 需要提取电子邮件地址不以 SamAccountName 开头的用户列表 因此 如果您的登录名是 jdo
  • 替换 CSV 文件中的引号和特殊字符的一些难题

    我在处理一些需要清理并加载到数据库中的 CSV 文件时遇到了一些难题 我相当擅长使用 PowerShell 但不擅长正则表达式和 csv 列操作 这是我遇到的问题 我正在使用的 CSV 文件中有一个 注释 字段 可以包含各种不同的字符 主要
  • 带有多个附件的电子邮件

    我正在为服务台编写一个 PowerShell 脚本 以便在将 userhome 文件夹从服务器迁移到 NAS 设备时使用 帮助台用户将用户名输入到 userhomelist txt 文件中 我的问题是我无法获取脚本来附加所有日志文件 电子邮
  • 抑制数组列表添加方法管道输出

    我正在使用数组列表来构建日志项序列以供稍后记录 工作起来很不错 但是 Add 方法将当前索引发送到管道 我可以通过将其发送到 null 来解决这个问题 如下所示 strings Add junk gt null 但我想知道是否有某种机制可以
  • 如何在 PowerShell 中远程执行 ELEVATED 远程脚本

    我有两台服务器 serverA Windows 2003 服务器 serverB Windows 7的 ServerA包含一个带有批处理文件 deploy bat 的文件夹 需要从提升的 powershell 提示符执行该批处理文件 在Se
  • Get-AzureStorageBlob 抛出找不到您的 azure 存储凭据

    我刚刚开始使用 Azure 在使用 PowerShell cmdlet 处理我的存储帐户时遇到问题 我已经创建了一个存储帐户并在该存储帐户中创建了一个容器 接下来 我安装了 Azure Powershell SDK 和命令让等 并导入了pu

随机推荐