【发布时间】:2019-12-21 04:11:30
【问题描述】:
我可以在脚本中有一个参数,默认情况下它会变成一个全局变量,像这样
param (
[string]$argument
)
但似乎我无法像这样控制该变量的范围
param (
[string]$private:argument
)
在一个复杂的脚本中,主脚本中有很多函数,加上模块中的其他函数,将参数限制为 Private 似乎是一种好习惯,但我似乎不知道该怎么做。
【问题讨论】:
-
您到底想完成什么?
$argument不是全局的,顺便说一句,它的范围仅限于定义它的脚本 -
是的,应该说脚本不是全局的。但我想要的是让参数是私有的,所以我不必担心在脚本中的函数中使用相同的名称。我倾向于使用多个别名和像
$argumentFromCommandLineBecauseReasons这样的变量名。这很愚蠢,但它会起作用。我什至可以稍后设置一个实际的$private:argument = $argumentFromCommandLineBecauseReasons,然后设置Remove-Variable argumentFromCommandLineBecauseReasons,但这有点傻。 -
你不必担心 :) 当你分配给嵌套范围内的变量时,它会默认创建一个新的局部变量
标签: powershell scope command-line-arguments