简介

PowerShell是新一代命令行交互(Shell)程序和脚本环境,可以用来命令交互和编写脚本。

PowerShell可以用来替代Window系统的命令提示符cmd.exe和批处理脚本.bat

PowerShell基于.NET,可以使用.NET中大量的类型和功能,支持跨平台。

可以使用.NET上的编程语言如C#,开发用于PowerShell的命令;也可以将PowerShell集成到.NET程序中。

安装PowerShell

PowerShell有两个发行版本。

Window PowerShell

Windows PowerShell基于.NET Framework,只能用于Window系统

Window PowerShell的安装和更新使用的是Windows补丁,和系统更新绑定的比较深,安装和更新较为不便。

Windows7 SP1之后的操作系统默认安装了Window PowerShell

Window PowerShell的最新版本是5.1

Window PowerShell的可执行程序名称是powershell.exe

PowerShell

PowerShell(Power Shell Core,pscore)基于.NET Core,可以单独下载安装。

PowerShell下载地址是:https://github.com/PowerShell/PowerShell/releases

安装.NET Core Sdk命令行程序dotnet的情况下,也可以作为全局工具安装。

命令:dotnet tool install -g powershell

PowerShell的最新版本是7.0。

PowerShell可以用于多个操作系统,在Window系统下,可执行程序名称是pwsh.exe;在其他系统,可执行程序名称是pwsh

建议使用最新版本的PowerShell

Window系统下,PowerShell基本兼容Window PowerShell中的命令和功能;在其他系统下,某些和Window系统相关的命令不能使用,如WMI相关命令,并且有些许区别。

PowerShell作为外壳交互程序

安装PowerShell后,运行程序,进入一个命令交互窗口,输入命令会显示结果。

查找系统目录最大的10个程序

dir C:\Windows\System32\*.exe | sort Length -Descending | select -First 10| select Name,Length

PowerShell支持大量命令,实现各种功能。

PowerShell每个命令的结果都是对象,可以通过管道传递给下一个命令,最终通过文本的方式显示。

PowerShell可以使用任何.NET类型。

下载网页源代码

$wc = New-Object System.Net.WebClient
$wc.DownloadString("https://www.baidu.com")
$wc.Dispose()

Powershell作为脚本

可以将PowerShell命令保存到文件中,以供多次使用。

PowerShell脚本是纯文本,扩展名为.ps1。可以使用任何编辑器编写。

重启资源管理器.ps1

ps explorer | kill
start explorer

推荐使用Windows PowerShell ISE(随着Windows PowerShell安装)或者Visual Studio Code编写脚本,支持语法高亮,代码提示和调试。

Window Terminal

Windows10系统下,可以在Window应用商店搜索安装安装Window Terminal作为终端。

Window Terminal支持多标签页,可以方便的设置字体、背景和配色,并且复制也更方便。

PowerShell和命令提示符相比的优点

命令提示符是基于文本的ShellPowerShell是基于对象。对象是高度结构化的,更容易处理。

PowerShell中命令的丰富程度远高于命令提示符。

PowerShell脚本语法更先进,批处理脚本对于变量、循环和代码块的支持不好。

PowerShell支持模块,更容易扩展。

PowerShell可以使用大量.NET中的类型和功能。

PowerShell是跨平台的,可以用于其他系统。