为下一次 Read-Host 调用设置硬编码输入
Set hardcoded input for next Read-Host call
我有一个 PowerShell 脚本(我无法更改),其中包含以下函数:
function Foo ([string] param1) {
[...]
$var1 = Read-Host "Test"
$var2 = Read-Host "Test2"
[...]
}
我想从我的 PowerShell 脚本中调用该函数并希望防止用户必须输入任何值,我想准备硬编码值。
我尝试了以下方法:
@("Var1Value", "Var2Value") | Foo "Param1Value"
但它仍然提示用户。有什么想法吗?
在命令发现期间,函数优先于二进制 cmdlet,因此您可以“隐藏”Read-Host
伪造的 Read-Host
函数:
# define local Read-Host function
function Read-Host {
param([string]$Prompt)
return @{Test = 'Var1Value'; Test2 = 'Var2Value'}[$Prompt]
}
# call foo
foo
# remove fake `Read-Host` function again
Remove-Item function:\Read-Host -Force
我有一个 PowerShell 脚本(我无法更改),其中包含以下函数:
function Foo ([string] param1) {
[...]
$var1 = Read-Host "Test"
$var2 = Read-Host "Test2"
[...]
}
我想从我的 PowerShell 脚本中调用该函数并希望防止用户必须输入任何值,我想准备硬编码值。
我尝试了以下方法:
@("Var1Value", "Var2Value") | Foo "Param1Value"
但它仍然提示用户。有什么想法吗?
在命令发现期间,函数优先于二进制 cmdlet,因此您可以“隐藏”Read-Host
伪造的 Read-Host
函数:
# define local Read-Host function
function Read-Host {
param([string]$Prompt)
return @{Test = 'Var1Value'; Test2 = 'Var2Value'}[$Prompt]
}
# call foo
foo
# remove fake `Read-Host` function again
Remove-Item function:\Read-Host -Force