随着我们从简单地运行命令转向编写完整的脚本,您将需要一个临时位置来存储数据。这就是变量的来源。
请务必阅读本系列之前的文章:
整个星期请继续关注本系列的其余部分。
大多数编程语言都允许使用变量,变量只是保存值的容器。在PowerShell中,我们也有变量,它们非常易于使用。下面是如何创建一个名为“FirstName”的变量,并给它赋值“Taylor”。
$FirstName = “Taylor”
大多数人似乎首先会问的是,为什么我们要在变量名前加一个美元符号,这实际上是一个非常好的问题。实际上,美元符号只是对shell的一个小提示,我们希望访问变量的内容(想想容器中的内容),而不是容器本身。在PowerShell中,变量名不包含美元符号,这意味着在上面的示例中,变量名实际上是“FirstName”。
Advertisement
在PowerShell中,您可以看到在变量PSDrive中创建的所有变量。
gci variable:
这意味着您也可以随时从shell中删除变量:
Remove-Item Variable:\FirstName
变量也不必包含单个对象;您可以同样轻松地将多个对象存储在一个变量中。例如,如果您想在一个变量中存储一个正在运行的进程列表,您可以将Get Process的输出赋给它。
$Proc = Get-Process
理解这一点的诀窍是记住等号的右边总是先求值。这意味着,如果您愿意,您可以在右侧拥有整个管道。
$CPUHogs = Get-Process | Sort CPU -Descending | select -First 3
CPUHogs变量现在将包含使用最多CPU的三个正在运行的进程。
当您确实有一个包含对象集合的变量时,有一些事情需要注意。例如,对变量调用方法将导致对集合中的每个对象调用该方法。
$CPUHogs.Kill()
Advertisement
这将杀死集合中的所有三个进程。如果要访问变量中的单个对象,需要将其视为数组。
$CPUHogs[0]
这样做将得到集合中的第一个对象。
默认情况下,PowerShell中的变量是弱类型的,这意味着它们可以包含任何类型的数据,这似乎一直吸引着新加入PowerShell的人!
$a = 10
$b = ‘20’
所以我们有两个变量,一个包含字符串,另一个包含整数。如果你加上它们会怎么样?这实际上取决于你把它们加进去的顺序。
$a + $b = 30
而
$b + $a = 2010
在第一个示例中,第一个操作数是一个整数,$a,因此PowerShell认为您正在尝试进行数学运算,因此也尝试将任何其他操作数转换为整数。但是,在第二个示例中,第一个操作数是字符串,因此PowerShell只需将其余操作数转换为字符串并将它们串联起来。更高级的脚本程序通过将变量强制转换为期望的类型来防止这种gotcha。
[int]$Number = 5 [int]$Number = ‘5’
上述两种情况都会导致Number变量包含一个值为5的整数对象。
因为PowerShell是用来自动化的,所以您应该尽可能避免提示用户输入信息。话虽如此,有时您无法避免它,对于这些时候,我们有Read-Host cmdlet。使用它非常简单:
$FirstName = Read-Host –Prompt ‘Enter your first name’
Advertisement
输入的内容将保存在变量中。
使用Write-output cmdlet编写输出同样简单。
Write-Output “How-To Geek Rocks!”
明天加入我们,把我们所学的一切联系在一起!
学习编程的关键第一步是使用循环。谢天谢地,PowerShell将随着您的技能不断增长。 ...
Powershell是一个完美的方式,一个新的编码器开始在Windows上。Powershell是命令行工具和脚本语言的等价部分。它使您能够通过您用来管理计算机的相同命令使计算机自动化。如果您有一个现代的Windows系统,那么您已经有了Powershell...
大多数用户从未听说过PowerShell,更不用说触摸它并试用了。这可能是因为这个名字,听起来像是只有铁杆IT极客才会使用的东西。或者是因为PowerShell的好处还不清楚。可能是因为最初的学习曲线。 ...
Windows PowerShell是一个优秀的配置管理和自动化框架。它由命令行shell和基于.NET的脚本语言组成。管理员使用PowerShell作为管理Windows、Linux和网络客户端的一种手段。 ...
...收件箱分心,Windows桌面上都有一个很有用的工具。它叫PowerShell。 ...
Windows PowerShell具有内置的命令历史记录功能,可提供有关已运行命令的详细信息。与命令提示符一样,PowerShell只记住当前会话的命令历史记录。 如何使用命令行缓冲区 相关:极客学校:学习如何用PowerShell自动化Windows PowerShel...
...可以轻松地重命名一个或多个文件,但使用命令提示符或PowerShell,您还可以执行更多操作。再加上第三方重命名工具,可能性是无穷的。让我们看看每个选项及其工作原理。 在windows资源管理器中重命名多个文件 Windows资源管...
....1和7上执行此操作的几种不同方法。 简单的方法:使用powershell命令 相关:极客学校:学习如何用PowerShell自动化Windows PowerShell是Windows中最强大的工具之一,所以它当然可以做一些简单的事情,比如列出你安装的程序。事实上...
由于几个主要与安全相关的原因,PowerShell脚本不像批处理脚本那样易于移植和使用。但是,我们可以将批处理脚本与PowerShell脚本捆绑在一起,以解决这些问题。在这里,我们将向您展示一些问题领域,以及如何构建批处理脚本...