如何在不连接 Powershell 的情况下传递参数? [复制]
Posted
技术标签:
【中文标题】如何在不连接 Powershell 的情况下传递参数? [复制]【英文标题】:How to pass arguments without concatenating in Powershell? [duplicate] 【发布时间】:2018-08-28 09:50:52 【问题描述】:(我是 PowerShell 新手,发现它是一种非常令人沮丧的语言)
我想创建一个带有参数和返回值的函数。不是火箭科学?反正我就是这么想的。但 PowerShell 不断连接我的论点 - 这是 MCVE 版本:
function hello($a, $b)
Write-host "a is $a and b is $b"
hello("first", "second")
我期待这会产生输出:
a is first and b is second
没想到……
a is first second and b is
除了它以一种我没想到的方式连接值之外,它也未能标记因此丢失的参数。
如何将参数传递给函数? (!!!!OMG WTF????!!!)
【问题讨论】:
它是一个shell,你可以像在命令行中那样传递参数。同样的方式你不会使用grep('pattern', 'file1')
但grep 'pattern' file1
。它们匹配,因此您可以以几乎相同的方式使用(高级)函数、cmdlet 和本机二进制命令。
好吧,在 OP 的辩护中,您会在某些 shell 中使用括号作为函数参数。以 Python 为例。话虽如此,我建议 OP 在 powershell 提示符中键入:Get-Help functions 然后特别注意高级功能主题。如果您要学习 powershell,不妨立即以最符合最佳实践的方式直接学习。
【参考方案1】:
从您对函数的调用中删除 ()
function hello($a, $b)
Write-host "a is $a and b is $b"
hello "first" "second"
or
hello -a "first" -b "second"
【讨论】:
以上是关于如何在不连接 Powershell 的情况下传递参数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在不卸载powershell的情况下,有效禁用/启用powershel
如何在不大幅增加其大小的情况下在 PowerShell 中保存文本文件?