我试图创建一个哈希表,
$input = @{'G'=100;'E'=50;'D'=35;'A'=100}
Run Code Online (Sandbox Code Playgroud)
并且无法弄清楚为什么它不会像往常一样使用像write-host
, 或简单的$input
. write-host
回来了System.Collections.ArrayList+ArrayListEnumeratorSimple
。$input
什么也没回。没有抛出错误。
凭直觉,我重命名了哈希表,然后繁荣,它看起来很正常。在 ISE 中打开一个新的 powershell 选项卡,我观察到变量$input
填充了智能感知,即使我没有在这个环境中定义它。
现在我很好奇:这个系统变量 $input 有什么用?我在第 4 版。
$INPUT
包含一个枚举器,用于枚举传递给函数的所有输入。该
$input
变量仅可用于函数和脚本块(它们是未命名的函数)。在函数的 Process 块中,$input
变量枚举当前在管道中的对象。当 Process 块完成时,管道中没有剩余的对象,因此该$input
变量枚举一个空集合。如果函数没有 Process 块,则在 End 块中,$input
变量枚举函数的所有输入的集合。
这在 PowerShell 中也可用:
Get-Help about_Automatic_Variables
Run Code Online (Sandbox Code Playgroud)
我也有一个开放的功能请求Set-StrictMode
来处理这个检测。
归档时间: |
|
查看次数: |
5172 次 |
最近记录: |