今天给大家讲解PowerShell Cmdlet概念介绍,希望对大家学习PowerShell能有所帮助!
一、概念
大家可能对cmd命令比较熟悉cmd就是Windows系统命令行窗口执行的命令,微软为了和传统的Shell命令区分,所以重新起了一个名词“Cmdlet”专门给PowerShell配套使用,Cmdlet可以理解为在PowerShell环境中执行的命令,并且依赖于PowerShell环境才可以执行。
注意:Cmdlet必须有Net环境支持,否则就会报错。
二、传统的CMD和Cmdlet命令的区别
传统CMD是32位的命令行程序【cmd.exe】,继承DOS操作模式,是Windows系统的‘标配’组件,可执行Windows命令和BAT文件,CMD只能执行基本的任务,本身并没有集成太多的功能。
Cmdlet是PowerShell的命令,所有的cmdlet命令都遵循动词-名词这样语法结构,PowerShell提供了Get-Command这个强大的命令,可以查找所有的cmdlet命令。它拥有强大的第三方类库支持,可以实现非常复杂的运维任务和数据处理分析。
三、Cmdlet说明
属于Net类实例化编译后的可执行脚本程序。
Cmdlet不负责错误处理和数据输出,依赖于PowerShell本身的运行环境来处理
Cmdlet采用管道进行对象处理,而非文本数据流,也支持把Cmdlet的执行结果作为对象传递到管道。
Cmdlet一次只能面对一个对象实现处理操作
四、PowerShell支持执行的命令
PowerShell功能非常强大也了兼容旧版的cmd shell,具体支持下面几种类型的命令
Cmdlet命令:Cmdlet命令属于PowerShell的“亲儿子”,所有命令都可以支持,还包括基于PowerShell构建的别名命令。
CMD命令:为了兼容旧版的命令行窗口,支持出别名以外所有的命令。所以大家使用cmd 别名命令要注意一下。
Bat脚本:对应cmd shell支持的bat脚本,它也支持。
VBS脚本:也支持VBS脚本命令的执行。
Function:当然也支持PowerShell Function的功能函数。
五、Cmdlet命令的特点
Cmdlet命令的更加人性化便于理解,如果没有使用别名的情况下,它的命令格式统一都是
动词 名词 这样的格式更容易书写也更容易理解。
执行如下命令:
查询当前环境支持的命令
代码语言:javascript复制get-command
CommandType Name Version Source
----------- ---- ------- ------
Alias Add-AppPackage 2.0.1.0 Appx
Alias Add-AppPackageVolume 2.0.1.0 Appx
Alias Add-AppProvisionedPackage 3.0 Dism
Alias Add-ProvisionedAppPackage 3.0 Dism
Alias Add-ProvisionedAppxPackage 3.0 Dism
Alias Add-ProvisioningPackage 3.0 Provisioning
Alias Add-TrustedProvisioningCertificate 3.0 Provisioning
Alias Apply-WindowsUnattend 3.0 Dism
Alias Begin-WebCommitDelay 1.0.0.0 WebAdministration
Alias Disable-PhysicalDiskIndication 2.0.0.0 Storage
Alias Disable-StorageDiagnosticLog 2.0.0.0 Storage
Alias Dismount-AppPackageVolume 2.0.1.0 Appx
Alias Enable-PhysicalDiskIndication 2.0.0.0 Storage
Alias Enable-StorageDiagnosticLog 2.0.0.0 Storage