PowerShell是什么?
Windows PowerShell 是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。
解读:
1、什么是交互式提示?
答:交互式提示就像打开一个cmd窗口,在里面执行一个ping命令一样,它会动态的输入结果。也可以像执行ftp命令一样,有一个上下文环境(Context),可以交互。
2、什么是脚本环境?
答:就像写VBScript脚本一样,以文件形式把PowerShell的程序语句写下来,然后利用PowerShell的脚本环境来执行整个脚本文件。顺便说一句,批处理也可以理解为一个脚本环境。PowerShell脚本文件的扩展名为.ps1,语言支持用于循环、条件、流控制和变量赋值的语言结构。
与接受和返回文本的大多数外壳程序不同,Windows PowerShell 是在 .NET 公共语言运行时 (CLR) 和 .NET Framework 的基础上构建的,它接受和返回 .NET 对象。环境中的这一根本更改带来了管理和配置 Windows 的全新工具和方法。
解读:
这个很有意思,一个对象化的脚本环境不奇怪,一个对象化的交互式环境确实是一个全新的理念。
Windows PowerShell 引入了 cmdlet(读作“command-let”)的概念,这是内置到外壳程序中的一个简单的单一功能命令行工具。可以分别使用每个 cmdlet,但是组合使用这些简单的工具执行复杂任务时才发挥其作用。Windows PowerShell 包括一百多个基本的核心 cmdlet,您可以编写自己的 cmdlet 并与其他用户共享它们。
解读:
1、这应该像command自带dir、cd、copy、del这些内置命令差不多,只不过它是可以模块化添加、删除的。PowerShell自带了大量cmdlet,也可以自己编写、分发。
2、可以通过其名称格式识别 cmdlet -- 由短划线 (-) 分隔的动词和名词,如 Get-Help、Get-Process 和 Start-Service。有Start-Service就有Stop-Service、Restart-Service,这里Windows系统不区分命令大小的一惯作风被得以体现。
3、每个cmdlet的作用都很简单,如“get”cmdlet 仅检索数据,“set”cmdlet 仅建立或更改数据,“format”cmdlet 仅设置数据格式,“out”cmdlet 仅将输出定向到指定的目标,所以应注意怎么组合使用。
4、每个 cmdlet 都具有一个帮助文件,可以通过键入以下内容访问它:get-help <cmdlet 名称> -detailed,如果只要查看简单的信息,就不要detailed这个参数,如果要查看更全面的技术信息,则需要把detailed更改为full。
也可以直接使用help <cmdlet 名称>,或者直接在使用 <cmdlet 名称> -? 。
get-help * 可以显示所有Powershell命令。get-help get-*可以显示get开头的命令。
试着完整的阅读get-help start-service -full,会对PowerShell有一个震撼的认识。
5、很多cmdlet有内置的别名,如Get-Service的别名就是gsv;
6、Get-Command,可以列出所有的cmdlet;
Windows PowerShell 为您提供了对计算机上文件系统的访问。此外,使用 Windows PowerShell 提供程序,还可以访问其他数据存储区,如注册表和数字签名证书存储区,与访问文件系统一样容易。
解读:
1、OK,它的强项在于文件系统、注册表、数字证书等?后面随着学习的深入,也会接触到它更多、更强大的功能。
可以在 Windows PowerShell 中运行 Windows 命令行程序,并可以在外壳程序中启动具有图形用户界面的 Windows 程序(如记事本和计算器)。还可以捕获程序生成的文本,并在外壳程序中使用该文本(与在 Cmd.exe 中很类似)。
解读:
1、在cmd.exe里面可以执行的外部命令,如net.exe、xcopy.exe、sc.exe、reg.exe等,均可以在PowerShell中正常使用;
2、cmd.exe本身也可以在PowerShell中使用;
3、cmd.exe自带的内置命令也可以使用,如dir c:;
4、运行services.msc一样可以打开服务面板;
5、也可以打开像notepad.exe这样的图形界面的Windwos程序。
下一篇:PowerShell中正则表达式使用例子