PowerShell是内置的Windows实用程序,其中包含广泛的脚本语言。如果您习惯于编写.bat文件来执行命令行操作,那么PowerShell所能做的一切都会给您留下深刻的印象。请注意,我还不是PowerShell专家。但是,由于我一直在使用它,它给我留下了深刻的印象,以至于我想向它介绍_WindowsTips_的忠实读者。

您可以通过几种不同的方式启动PowerShell,这取决于您所运行的Windows版本以及所看到的内容。因此,尽管我将提到调用它的不同方法,但我将集中精力从命令行使用PowerShell。

调用PowerShell的一种方法是打开“命令行”窗口(在另一个提示下),然后键入“ PowerShell”(不带引号),然后按Enter。另一种方法是使用Windows的搜索功能来搜索“ Windows PowerShell”。第三种方法是再次搜索“ Windows PowerShell”,然后选择名为“ Windows PowerShell ISE”的搜索结果。在最新版本的Windows 10中,当您选择此项目时,您将看到一个拆分屏幕,您可以在该屏幕的左侧以交互方式输入PowerShell命令,也可以在屏幕的左侧构建PowerShell脚本文件。

Windows PowerShell ISE屏幕如下所示:(请参见图1。)

image

图1. Windows PowerShell ISE。

如果您使用的是Windows 10的早期版本,则选择此项目时,您会看到一个拆分屏幕,您可以在屏幕底部以交互方式输入PowerShell命令,还可以在屏幕顶部构建PowerShell脚本文件。此拆分屏幕可能如下所示:(请参见图2。)

image

图2. PowerShell ISE。

使用PowerShell后,您将主要处理“ cmdlet”。 cmdlet遵循_verb-noun_模式。例如,要在PowerShell中获取帮助,请键入Get-Help,然后按Enter。还有关于PowerShell的其他技巧,但是如果您迫不及待,建议您首先阅读以下帮助主题:

PS> Get-Help Get-Command PS> Get-Help Get-Member PS> Get-Help Where-Object PS> Get-Help About_Object

第一个命令返回有关cmdlet的信息,第二个命令获取对象的属性和方法。第三个命令过滤对象属性,最后一个命令说明PowerShell中对象的用法。

PowerShell脚本可能有点冗长,因此它包含称为别名的内容,这是许多更流行的cmdlet的快捷方式。例如,您不必键入Get-Help,而只需键入Help。要查看现有别名的列表,请在PS提示符下键入Get-Alias。

PowerShell脚本是普通的文本文件,扩展名为.ps1,并包含一系列旨在执行功能的cmdlet。例如,您可以编写一个在控制台上显示“ Hello”的PowerShell脚本。但是,在运行脚本之前,必须首先建立安全环境。请按照下列步骤操作:

调用Windows命令行,指定以管理员身份运行

通过在命令提示符下输入“ PowerShell”来调用PowerShell

在PowerShell提示符下,键入Set-ExecutionPolicy RemoteSigned

这些步骤只需要执行一次,您便可以开始运行脚本。现在启动记事本并在其中键入以下内容:

Write-Output "Hello"

退出记事本,命名文件Hello.ps1,并确保将其保存到PowerShell会话指示的目录中。 (目录名称是PowerShell提示符的一部分;我有一个C:\ PowerShell目录,我在其中存储了所有.ps1文件。)在PowerShell提示符下,键入“。\ Hello.ps1”

并且您应该看到脚本已执行,即屏幕上将显示单词“ Hello”。

关于PowerShell,还有很多可以说的,但是由于这是一个介绍性的技巧,因此我将仅提及几件事。由于注释脚本始终是一种好习惯,因此您应该知道PowerShell注释字符是“#”符号。该字符右侧出现的所有内容都将被忽略。而且,说到特殊字符,如果您需要将PowerShell行继续到另一行,请在第一行以重音符号(“`”)结尾,有时也将其称为反引号或反引号。

习惯的另一件事是能够将一个命令的输出“传递”到另一个命令。 PowerShell脚本通常会将其cmdlet传递到其他cmdlet。竖线字符为“ |”符号。因此,例如,您可以通过管道传递到“格式” cmdlet之一中来以不同方式格式化一个cmdlet的输出。假设您要获取名为“ C:\ Temp \ VmwareStatus.log”的文件的属性。您可以使用Get-ItemProperty cmdlet进行此操作,如下所示:

PS> Get-ItemProperty C:\ Temp \ VmwareStatus.log

默认情况下,文件的属性将以表格格式显示。

如果要在列表中显示属性,则可以将输出通过管道传递到Format-List cmdlet:

PS> Get-ItemProperty C:\ Temp \ VmwareStatus.log |格式列表

最后,如果要返回熟悉的命令行环境,只需在PowerShell提示符下键入“ cmd”。要退出此环境,只需键入“退出”。要退出PowerShell,您还可以键入“退出”。

本技巧(13506)适用于Windows 7、8和10。