Fly*_*der 1 variables powershell
我想要一个函数,其中结果存储在函数定义变量名称的变量中 - 基本上这样:
function testfunction ($varname,$text){
$readhost = read-host -prompt "$text"
new-variable -name $varname -value $readhost
}
Run Code Online (Sandbox Code Playgroud)
虽然进入时:
testfunction outputvar sampletext
get-variable -name outputvar
Run Code Online (Sandbox Code Playgroud)
我只是得到一个错误,变量"outputvar"不存在.我在这里想念的是什么?尝试过其他一些东西,但似乎什么都没有用 - 我最终想要的是一个名为"outputvar"的变量,它包含提示输入,只是为了澄清.
您的问题是由于范围界定.通过创建的变量New-Variable(默认情况下)作用域,以便只能在您的函数中访问它.您可以通过-Scope参数覆盖范围:
function testfunction ($varname,$text){
$readhost = read-host -prompt "$text"
new-variable -name $varname -value $readhost -scope Script
}
Run Code Online (Sandbox Code Playgroud)
这会将范围更改为Script,因此现在可以在函数外部访问该变量.但是,为变量定义非标准范围并不是很好的做法.你应该这样做:
function testfunction ($text){
read-host -prompt "$text"
}
$outputvar = testfunction sampletext
Run Code Online (Sandbox Code Playgroud)