Geek学校:学习PowerShell变量,输入和输出

当我们远离简单地运行命令和移动到编写完整的脚本,你将需要一个临时的地方来存储数据。 这是变量进来的地方。

请务必阅读本系列中的前几篇文章:

并保持关注系列的其余部分整个星期。

变量

大多数编程语言允许使用变量,这些变量只是容纳值的容器。 在PowerShell中,我们也有变量,它们真的很容易使用。 下面是如何创建一个名为“FirstName”的变量,并赋值为“Taylor”。

$ FirstName =“Taylor”

大多数人似乎要问的第一件事是,为什么我们在变量名前放一个美元符号,这实际上是一个很好的问题。 真的,美元符号只是对shell的一点小提示,我们想要访问变量的内容(想想容器内是什么),而不是容器本身。 在PowerShell中,变量名称不包括美元符号,这意味着在上面的示例中变量名称实际上是“FirstName”。

在PowerShell中,您可以看到在变量PSDrive中创建的所有变量。

gci变量:

image

这意味着你可以随时从shell中删除一个变量:

删除项目变量:\ FirstName

变量不必包含单个对象; 您可以轻松地将多个对象存储在变量中。 例如,如果你想存储一个运行进程的列表在一个变量,你可以只是分配它的输出Get-Process。

$ Proc = Get-Process

理解这个的诀窍是要记住,等号的右边总是先计算。 这意味着你可以有一个整个管道在右手边,如果你想。

$ CPUHogs = Get-Process | 对CPU降级| 选择-First 3

CPUHogs变量现在将包含使用最多CPU的三个正在运行的进程。

image

当你有一个变量持有一个对象的集合,有一些事情需要注意。 例如,对变量调用方法将导致在集合中的每个对象上调用它。

$ CPUHogs.Kill()

这将杀死集合中的所有三个进程。 如果要访问变量中的单个对象,则需要像数组一样对待它。

$ CPUHogs [0]

这样做会给你集合中的第一个对象。

image

不要抓到!

PowerShell中的变量是默认的弱类型,意味着它们可以包含任何类型的数据,这似乎总是抓住PowerShell的新来者!

$ a = 10

$ b =20

所以我们有两个变量,一个包含一个字符串,另一个包含一个整数。 那么,如果你添加他们会发生什么? 它实际上取决于您添加它们的顺序。

$ a + $ b = 30

$ b + $ a = 2010

在第一个例子中,第一个操作数是一个整数$ a,所以PowerShell认为你正在尝试做数学,因此尝试将任何其他操作数转换为整数。 但是,在第二个示例中,第一个操作数是一个字符串,因此PowerShell只是将其余的操作数转换为字符串并将它们连接起来。 更高级的脚本通过将变量投射到他们期望的类型来防止这种困扰。

[int] $ Number = 5
[int] $ Number =5

以上都将导致Number变量包含值为5的整数对象。

输入和输出

因为PowerShell意在自动化事情,所以你将尽可能避免提示用户提供信息。 这说明,有时你不能避免它,而对于那些时候,我们有Read-Host cmdlet。 使用它真的很简单:

$ FirstName = Read-Host -Prompt输入您的名字

image

无论你输入什么都会保存在变量中。

image

使用Write-Output cmdlet编写输出同样很容易。

写输出“如何Geek岩石!

image

加入我们明天,我们把我们一起学到的一切!

赞 (0)
分享到:更多 ()