powershell:如何从 [ref] 变量写入主机值

2024-04-06

我是 Powershell 新手,我正在尝试弄清楚如何从函数内打印 [ref] 变量的值。

这是我的测试代码:

function testref([ref]$obj1) {
  $obj1.value = $obj1.value + 5
  write-host "the new value is $obj1"
  $obj1 | get-member
}


$foo = 0
"foo starts with $foo"
testref([ref]$foo)
"foo ends with $foo"

我从这个测试中得到的输出如下。您会注意到我没有像我希望的那样获得 $obj1 的值。我还尝试在对 write-host 的调用中传递 $obj1.value ,但这生成了相同的响应。

PS > .\testref.ps1
foo starts with 0
the new value is System.Management.Automation.PSReference


   TypeName: System.Management.Automation.PSReference

Name        MemberType Definition
----        ---------- ----------
Equals      Method     bool Equals(System.Object obj)
GetHashCode Method     int GetHashCode()
GetType     Method     type GetType()
ToString    Method     string ToString()
Value       Property   System.Object Value {get;set;}
foo ends with 5

您可能会尝试:

write-host "the new value is $obj1.value"

并得到相应的输出

the new value is System.Management.Automation.PSReference.value

我想你没有注意到.value在输出的末尾。

在字符串中,您必须在访问属性时执行类似的操作:

write-host "the new value is $($obj1.value)"

或者使用字符串格式,如下所示:

write-host ("the new value is {0}" -f $obj1.value)

或者在外部赋值,例如$value = $obj1.value并在字符串中使用。

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

powershell:如何从 [ref] 变量写入主机值 的相关文章

  • 捕获 Exchange 命令行管理程序中的错误

    我正在尝试编写一个创建 Exchange 邮箱的 powershell 脚本 只要邮箱尚不存在 这种方法就可以正常工作 但是当我尝试捕获任何错误并将其报告回来时 脚本就会运行 就好像一切都很好一样 我在现有用户上运行该脚本 它显示了错误 但
  • 如何在 PowerShell 中从数组创建 ArrayList?

    我有一个数组中的文件列表 我想枚举这些文件 并从中删除特定文件 显然我无法从数组中删除项目 所以我想使用ArrayList 但以下内容对我不起作用 temp Get ResourceFiles resourceFiles New Objec
  • 有什么方法可以从 cli 中找到 python 中函数的所有可能的 kwargs 吗?

    有没有办法从命令行发现 python 中函数的潜在关键字参数 无需查看源代码或文档 有时源是 c lib 即使不可见 您可以使用inspect模块 在 3 3 中 这很容易使用inspect signature https docs pyt
  • 这个具有多个值(变量)的 return 语句如何工作? [复制]

    这个问题在这里已经有答案了 我试图了解 C 函数中按值传递和返回是如何发生的 我发现一段代码如下 include
  • 从函数调用动态 SQL

    我正在编写一个返回表的函数 有两个参数传递给该函数 并构建并执行查询并将其插入到返回的表中 但是我收到这个错误 只能从函数内执行函数和一些扩展存储过程 我不想使用存储过程 因为这是一个简单的实用函数 有谁知道这是否可以做到 我的函数编码如下
  • 在函数中声明默认参数在幕后有什么作用?

    这不是调试问题或操作方法问题 这是一个概念性问题 我发现很难理解什么this https developer mozilla org en US docs Web JavaScript Reference Functions Default
  • PS对象排序

    我正在尝试格式化与几天前的问题相关的 PSObject 我的对象看起来像这样 New Object PSObject Property Version winVersion Caption Processor Name processorI
  • 如何获取有关 Powershell 脚本参数的帮助消息?

    我有一个 powershell 脚本 setup ps1 我们将其用作开发环境设置脚本的入口点 它需要一个参数 param Parameter Position 0 HelpMessage The targets to run Alias
  • excel函数查找列中的最后一个数字

    我每天将股票的价值记录在列中 这是一个很长的电子表格 在每列的顶部单元格中 我想使用一个函数来自动显示该列中的最后一个条目 我尝试过 Index 函数以及 Index 函数与 Counta 函数结合使用 但没有成功 有什么建议么 尝试使用L
  • 如何列出运行时函数的所有调用?

    有什么办法可以list 在VS中显示 写入文件 所有来电者 对象 函数 一个函数的当程序运行时 可能使用调试器 我需要record 所有通话 包括来电者 一个函数的从计划启动到终止 简单扫描源代码或二进制文件不做这份工作因为该程序可以作为服
  • 在 PowerShell 中解析大型 JSON 文件

    Context 在这篇文章中 ConvertFrom Json 大文件 https stackoverflow com q 76784490 268581 我询问有关反序列化 1 2GB JSON 文件的问题 这个答案发布在那里 https
  • Python执行windows cmd函数

    我知道你可以使用 subprocess 通过 Python 脚本运行 Linux 终端命令 subprocess call ls l for linux 但我找不到在 Windows 上做同样事情的方法 subprocess call di
  • 使用 javascript 更改 onClick 属性

    这是我的函数 它应该更改 HTML 输入的 onClick 属性 但是如果我使用 document getElementById buttonLED id onclick writeLED 1 1 它根本不起作用 但如果我使用 docume
  • 在 NuGet 包中添加解决方案级项目

    我想通过 NuGet 包将解决方案文件夹和解决方案项 不是项目 添加到解决方案文件中 我想这将通过 Powershell 来完成 我浏览了 NuGet Powershell 和 EnvDTE 的文档 但无法弄清楚 我会使用哪些命令 方法 我
  • 列出共享邮箱上的所有电子邮件及其附件名称

    我创建了一个非常简单的 powershell 脚本来收集有关共享邮箱文件夹上所有电子邮件的一些基本信息 Add type assembly Microsoft Office Interop Outlook out null olFolder
  • 使用 Powershell 按列拆分 csv 文件

    我是 powershell 的新手 但这看起来是完成此任务的最佳工具 有一个如下所示的 csv 文件 Date mary1 mary2 maryr3 mary4 9 01 2011 1 00 1 39 3 43 3 29 1 83 9 01
  • TFS:在服务器重新启动或 Windows 更新安装时触发构建的最佳方式

    简而言之 要求是验证我们最新发布的软件是否可以在应用最新的 Windows 更新和 或其他补丁后构建并安装 因此 构建服务器虚拟机将专门为此目的进行配置 并且构建仅需要在更新后运行 由于此类更新通常会重新启动 因此我正在考虑触发构建和部署的
  • 批处理文件中的 Powershell - 如何转义元字符?

    运行 Windows 7 当我复制文件在例程期间到外部磁盘文件备份 我使用 Powershell v2 从批处理文件 在副本文件上重新创建原始文件的所有时间戳 以下代码在大多数情况下都能成功运行 但并非总是如此 SET file 1 SET
  • 将 .cer 格式的证书添加到 .bks 密钥库中

    我需要将 cer 格式的证书添加到 BKS 密钥存储中 SO 上对此进行了描述 如何将 cer 转换为 BKS https stackoverflow com questions 21284466 how to convert cer to
  • PowerShell Try、Catch、自定义终止错误消息

    有没有办法自定义终止错误的错误消息 在下面的例子中我只想得到一个Try部分并将所有错误收集在一个中Catch通过组合两个脚本块来部分 我的问题是 error产生于Import csv描述性不够 我想要文字Failed CSV File im

随机推荐