在Powershell中,$ input是什么?

时间:2017-04-05 20:35:13

标签: powershell

我试图创建一个哈希表,

SELECT users.email
FROM prefix_users as users
LEFT JOIN prefix_user_permission_matches as matches ON users.id = 
matches.user_id
LEFT JOIN prefix_permissions as permissions ON permissions.id = matches.permission_id
WHERE permissions.name IN ($entreprise)

并且无法弄清楚为什么它不会像往常一样显示$input = @{'G'=100;'E'=50;'D'=35;'A'=100} 或简称write-host这样的命令。 $input已返回write-hostSystem.Collections.ArrayList+ArrayListEnumeratorSimple没有返回任何内容。没有抛出任何错误。

在预感中,我重命名了哈希表,并且繁荣,这似乎正常。在ISE中打开一个新的PowerShell选项卡,我观察到变量$input填充了intellisense,即使我还没有在这个环境中定义它。

现在我很好奇:这个系统变量$ input是什么?我是第4版。

1 个答案:

答案 0 :(得分:2)

It's an automatic variable

  

$INPUT

     

包含枚举器,枚举所有传递的输入   一个功能。 $input变量仅适用于函数和   脚本块(未命名的函数)。在一个过程块中   函数,$input变量枚举当前的对象   在管线中。当Process块完成时,没有   对象留在管道中,因此$input变量枚举一个   空集合。如果该函数没有Process块,那么   在结束块中,$input变量枚举所有的集合   输入到函数。

这也可以在PowerShell中使用:

Get-Help about_Automatic_Variables

I also have an open feature request for Set-StrictMode to handle detection of this