PowerShell简介

PowerShell是什么?

PowerShell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。
相比Linux里的shell,Windows自带的cmd命令提示符显得有些简陋,所以从Windows 7之后微软提供了cmd的超级升级版——PowerShell。

怎么安装PowerShell?

大部分情况下是不需要安装的

Windows 7/Windows Server 2008 内置PowerShell 2.0

Windows 8/Windows Server 2012 内置PowerShell 3.0

Windows 8.1/Windows Server 2012 R2 内置 PowerShell 4.0

Windows 10 内置PowerShell 5.0预览版

使用$psversiontable变量可以查看PowerShell,.net框架的版本。

1
2
3
4
5
6
7
8
9
10
11
PS C:\Users\Admin> $psversiontable

Name Value
---- -----
CLRVersion 2.0.50727.5485
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1

PowerShell 2.0已经可以满足大部分需求了,如果需要新版本升级到这里下载

PowerShell4.0 MSDN官方下载地址: https://www.microsoft.com/en-us/download/details.aspx?id=40855

PowerShell有哪些功能和特点?

  • PowerShell传递的是.net Object(PSObject),这与LinuxShell、CMD完全不同
  • PowerShell有完整的强类型支持
  • PowerShell和.net 还有COM、WMI、ADSI是无缝结合的
  • PowerShell支持CMD原有的所有命令
  • PowerShell的命令叫做cmdlet,采用动词-名词的形式,不区分大小写

快速开始

在运行里直接输入powershell,或者在附件 -> Windows PowerShell里面打开。

PS:如果在Windows7里面,这两种方式打开的PowerShell背景颜色、窗体样式不一样,但实际上它们都是同一个文件%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe,没有任何区别,只不过在附件里的快捷方式设置了一下背景颜色和窗体大小。

按照传统,写一个最简单的hello world,
在这里可以使用cmd的echo命令”hello world”,也可以使用write(“hello world”)
或者,其实他们本质是一样的,他们都是Write-Out的别名(Alias)

1
2
3
4
5
6
7
8
9
PS C:\Users\Test> write "hello world"
hello world
PS C:\Users\Test> echo("hello world")
hello world
PS C:\Users\Test> write hello world
hello
world
PS C:\Users\Test> echo "hello world"
hello world

执行一下你会发现与cmd里输出echo hello world还是有区别的,cmd里输出echo “hello world”会把引号也输出,而PS里加上括号/引号都会当成一个字符串输出,什么都不加时会分行输出。如上面代码所示。

除了直接在Shell界面操作,也可以在文本编辑器里写了PS脚本,然后保存为.ps1格式,右键 -> 以PowerShell格式运行。

当然,更推荐的code环境是PowerShell ISE,Win7以上系统全部自带,在运行输入powershell ise或者在附件里打开,界面如下图:

简单介绍一下:最上面一栏是脚本文件编辑的,中间一栏是运行结果,第三栏是console。这个编辑器看着简单其实功能蛮多的,之后会再次详细介绍。