简介
Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。
当前powershell有四版本,分别为1.0,2.0,3.0 ,4.0
如果您的系统是window7或者Windows Server 2008,那么PowerShell 2.0已经内置了,可以升级为3.0,4.0。
如果您的系统是Windows 8 或者Windows server 2012,那么PowerShell 3.0已经内置了,可以升级为4.0。
如果您的系统为Windows 8.1或者Windows server 2012 R2,那默认已经是4.0了。
下载与安装
Powershell 1.0 下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=9591
Powershell 2.0 下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=9864
Powershell 3.0 下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=34595
Powershell 4.0 下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=40855
自定义控制台
右击标题栏选择”属性”弹出powershell控制台对话框。在这里有四个选项卡:选项、字体、布局和颜色。
“选项”设置光标,历史记录,编辑模式的切换。

“字体”设置字体的名称和大小

“布局”设置窗口的缓冲区、窗口大小、窗口的起始坐标
“颜色”设置屏幕和对话框的背景色和前景色
快速编辑模式和标准模式
powershell控制台有两种模式,一个是快速编辑模式,一个是标准模式。
快速编辑模式和标准模式的切换可以通过控制台标题栏->鼠标右击->属性->选项->编辑选项 。
Powershell标准模式
鼠标右击选择标记后才能实现复制和粘切功能。
Powershell快速编辑模式
可以通过鼠标左键选择任意矩形区域内的文本,并且鼠标右击实现复制功能。
快捷键
ALT+F7 | 清除命令的历史记录 |
PgUp PgDn | 显示当前会话的第一个命令和最后一个命令 |
Enter | 执行当前命令 |
End | 将光标移至当前命令的末尾 |
Del | 从右开始删除输入的命令字符 |
Esc | 清空当前命令行 |
F2 | 自动补充历史命令至指定字符 (例如历史记录中存在Get-Process,按F2,提示"Enter char to copy up to",键入‘s’,自动补齐命令:Get-Proce) |
F4 | 删除命令行至光标右边指定字符处 |
F7 | 对话框显示命令行历史记录 |
F8 | 检索包含指定字符的命令行历史记录 |
F9 | 根据命令行的历史记录编号选择命令,历史记录编号可以通过F7查看 |
左/右方向键 | 左右移动光标 |
上/下方向键 | 切换命令行的历史记录 |
Home | 光标移至命令行最左端 |
Backspace | 从右删除命令行字符 |
Ctrl+C | 取消正在执行的命令 |
Ctrl+左/右方向键 | 在单词之间移动光标 |
Ctrl+Home | 删除光标最左端的所有字符 |
管道和重定向
管道
把上一条命令的输出作为下一条命令的输入。

例如通过ls获取当前目录的所有文件信息,然后通过Sort -Descending对文件信息按照Name降序排列,最后将排序好的文件的Name和Mode格式化成Table输出。
PS C:\PStest> ls | sort -Descending Name | Format-Table Name,Mode Name Mode ---- ---- d.txt -a--- c.txt -a--- b.txt -a--- ABC d---- a.txt -a---
重定向
把命令的输出保存到文件中,‘>’为覆盖,’>>’追加。
PS C:\PStest> "Powershell Routing" >test.txt PS C:\PStest> Get-Content .\test.txt Powershell Routing PS C:\PStest> "Powershell Routing" >>test.txt PS C:\PStest> "Powershell Routing" >>test.txt PS C:\PStest> "Powershell Routing" >>test.txt PS C:\PStest> "Powershell Routing" >>test.txt PS C:\PStest> "Powershell Routing" >>test.txt PS C:PStest\> Get-Content .\test.txt Powershell Routing Powershell Routing Powershell Routing Powershell Routing Powershell Routing Powershell Routing PS C:\PStest>