我需要帮助,以了解如何从导入的模块传递参数。
模块包含一些自定义参数,例如-one,-two,-three
我正在尝试使用模块中的命令制作GUI。 例如。如果从下拉菜单中选择“一个”,则通过-one命令。
但是,当我这样做时(使用下面的示例),我得到一个错误:“找不到一个接受参数'-one'的位置参数。”
我可以看到,使用下面的代码,它在命令周围添加了单引号,这可能会破坏它。
我知道我可以运行IF语句(例如,如果combobox.text =“ one”,请执行此操作),但是我宁愿使用变量,而不必执行多个if语句或循环。使用变量似乎是一个更简单的选择。
我正在学习这种语言,所以我还没有足够的知识:)
感谢您的帮助。希望这有道理。
$variable = $comboboxNumbers.Text
#example One is selected from the dropdown
Custom-ADCommand -identity "username" $variable
答案 0 :(得分:0)
下面是简单的示例方法:
function Set-SwitchParams {
[CmdletBinding()]
param (
# Parameter help description
[Parameter(Mandatory = $false)]
[switch]
$SwitchA,
[Parameter(Mandatory = $false)]
[switch]
$SwitchB
)
begin {
}
process {
}
end {
if ($SwitchA){
Write-Host "SwitchA is activated"
}
if ($SwitchB){
Write-Host "SwitchB is activated"
}
}
}
将方法放入PS1
文件中,例如SwitchPlayground.ps1
。然后通过以下方式在PowerShell中获取文件:
. .\SwitchPlayground.ps1
随后,您可以使用以下命令进行操作,例如:
Set-SwitchParmas -SwitchA
我建议研究以下链接:
希望有帮助。
答案 1 :(得分:0)
If语句可能更好,但是可以创建一个字符串,然后在powershell中执行该字符串。
作为一个简单的例子,使用此字符串
$string = '@("test","hello","whats up")'
然后我可以执行它并使用它来创建一个数组
$array = invoke-expression $string
将使用“ test”,“ hello”和“ whats up”创建一个数组,并将其存储在$array
PS C:\temp> $string = '@("test","hi","what")'
PS C:\temp> $array = Invoke-Expression $string
PS C:\temp> $array
test
hi
what