【PowerShell】
PowerShell（包括Windows PowerShell和PowerShell Core）是微软公司开发的任务自动化和组态管理架构，由在.NET Framework和后来的.NET上构建的命令行界面壳层相关脚本语言组成，最初仅仅是Windows元件，后于2016年8月18日开源并提供跨平台支持。
在PowerShell中，管理任务通常由cmdlets（发音为command-lets）执行，这是执行特定操作的专用.NET类。可以将cmdlet集合至脚本、可执行文件（一般是独立应用程序）中，或通过常规.NET类（或WMI / COM对象）实例化。
== 源起与目的 ==
UNIX系统一直有著功能强大的壳程式（shell），Windows PowerShell的诞生就是要提供功能相当于UNIX系统的命令列壳程式（例如：sh、bash或csh），同时也内建脚本语言以及辅助脚本程式的工具。
== 程式特性 ==
* 一致性的设计让所有工具和系统资料的使用语法、命名原则都相同。
* 脚本语言简单易学，而且能支援现有的脚本程式和命令列工具。
* 内含129种称为cmdlet的标准工具，可用来处理常见的系统管理工作。
* 具备完整的扩充功能，独立软体商或开发者都能很容易的自行扩充。
* 进程间数据传递内容具有强类型特征。
* PowerShell Core可以自动检测字符编码，自动识别Linux和Windows下的换行符，跨平台运行。
cmdlet是Windows PowerShell的指令，发音念法为command-let。这相当于DOS或其他壳程式的内建指令，指令名称的格式都是以连字号（-）隔开的一对动词和名词，并且通常都是单数名词；例如线上查询说明的cmdlet指令为get-help，名称的动词部分大致有get、set、add、remove等等（字母都不分大小写）。
Windows PowerShell ISE是Windows PowerShell的主机应用程序。在此程序中，可以在单个Windows GUI中运行命令、编辑与测试脚本。此程序具有多行编辑、Tab补齐、上下文相关帮助、语法着色、选择性执行等功能，而且还支持从右到左的书写顺序等功能。
== 技术基础 ==
Windows PowerShell是以.NET Framework技术为基础，并且与现有的WSH保持回溯相容，因此它的脚本程式不仅能存取.NET CLR，也能使用现有的COM技术。同时也包含了数种系统管理工具、简易且一致的语法，常见如登录资料库、WMI。Exchange Server 2007以及System Center Operations Manager 2007等伺服器软体都将内建Windows PowerShell。
== 范例 ==
* 停止所有目前执行中的以"p"字元开头命名的程式：
get-process p* | stop-process
* 停止所有目前执行中的所有使用大于1000MB记忆体的程式：
get-process | where { $_.WS -gt 1000MB } | stop-process
* 计算一个目录下档案内的位元组大小：
get-childitem | measure-object -property length -sum
* 将"hello, world!"字串转为英文大写字元，成为"HELLO, WORLD!"：
"hello, world!".ToUpper()
* 订阅一个指定的RSS Feed并显示它最近8个主题：
$rssUrl = "http://blogs.msdn.com/powershell/rss.aspx"
$blog = xml(new-object System.Net.WebClient).DownloadString($rssUrl)
$blog.rss.channel.item | select title -first 8
=== 命令提示字元比较 ===
},
cp
将档案和资料夹复制到另一个位置
Move-Item
mi, move, mv
move
mv
将档案和资料夹移动到新位置
Remove-Item
ri, del, erase, rmdir, rd, rm
del, erase, rmdir, rd
rm, rmdir
删除档案或资料夹
Rename-Item
rni, ren, mv
ren, rename
mv
重命名单个档案、资料夹、硬连结或符号连结
Get-Location
gl, cd, pwd
cd
pwd
显示工作路径（目前资料夹）
Pop-Location
popd
popd
popd
将工作路径更改为最近推送到堆叠上的位置
Push-Location
pushd
pushd
pushd
将工作路径储存到堆叠中
Set-Location
sl, cd, chdir
cd, chdir
cd
改变工作路径
Tee-Object
tee
tee
将输入管道传输到档案或变数，并沿管道传递输入
Write-Output
echo, write
echo
echo
将字符串或其他对像打印到标准串流
Get-Process
gps, ps
tlist,1=Available in Windows NT4, Windows 98 Resource Kit, Windows 2000 Support Tools
ps
列出所有正在执行的处理程序
Stop-Process
spps, kill
kill,name="Available tlist kill" taskkillname="Available tasklist taskkill"
killefn|name="UNIX kill misnomer"|1=Also used in UNIX to send a process any signal, the "Terminate" signal is merely the default
停止正在执行的处理程序
Select-String
sls
findstr
find, grep
打印与模式匹配的-{zh-tw:列;zh-cn:行;}-
Set-Variable
sv, set
set
env, export, set, setenv
创建或更改环境变量的内容
Invoke-WebRequest
iwr, curl, wgetcurl and wget aliases are absent from PowerShell Core, so as to not interfere with invoking similarly named native commands.
curl
wget, curl
取得互联网上的网页内容
== 参考文献 ==
== 扩展阅读 ==
* Cite book |title=Monad (AKA PowerShell) |first=Andy |last=Oakley |isbn=0-596-10009-4 |year=2005 |publisher=O'Reilly Media
* Cite book |title=Windows PowerShell Quick Reference |first=Lee |last=Holmes |isbn=0-596-52813-2 |publisher=O'Reilly Media |year=2006
* Cite book |title=Windows PowerShell Cookbook |first=Lee |last=Holmes |isbn=0-596-52849-3 |publisher=O'Reilly Media |year=2007
* Cite book |title=Windows PowerShell Unleashed |first=Tyson |last=Kopczynski |first2=Pete |last2=Handley |first3=Marco |last3=Shaw |isbn=978-0-672-32988-3 |edition=2nd |year=2009 |publisher=Pearson Education
* publisher=Sapien Technologies
* Cite book |title=Windows PowerShell for Developers |first=Douglas |last=Finke |isbn=1-4493-2270-0 |year=2012 |publisher=O'Reilly Media
* Cite book |title=Windows PowerShell 3.0 Step by Step |first=Ed |last=Wilson |isbn=978-0-7356-6339-8 |publisher=Microsoft Press |year=2013
* cite book |title=Windows PowerShell Best Practices |last=Wilson |first=Ed |publisher=Microsoft Press |isbn=978-0-7356-6649-8 |year=2014
== 外部连结 ==
微软官网
*  如何使用 PowerShell 文件 - PowerShell | Microsoft Docs
*  GitHub - PowerShell/PowerShell: PowerShell for every system! date=20200514210658
*  易学易用的Windows PowerShell date=20180108233506
*  MSDN视频教程 date=20210716070446
其他
* PowerShell/PowerShell
* TechNet维基： Windows PowerShell Survival Guide date=20120915113215