zoukankan      html  css  js  c++  java
  • [Windows Powershell]-学习笔记(2)

    1. 数学运算

    我们可以把powershell当成一个计算器。如键入命令行那样输入数学表达式,回车,powershell会自动计算并把结果输出。常用的加减乘除模(+,-,*,/,%)运算和小括号表达式都支持。

    powershell也能自动识别计算机容量单位,包括KB,MB,GB,TB,PB

     

    1. Powershell执行外部命令

    Powershell能像cmd一样执行外部命令,

    如使用netstat –an 查看网络端口连接

    使用ipconfig 查看本机ip地址

    使用route print查看路由信息

     

    启动控制台CMD,使用exit退出CMD

     

    查看CMD的帮助命令,可以通过/c来接收命令参数(help)

    Cmd /c help

     

    启动外部程序,如notepad,但为什么不能启动winword呢,因为winword的路劲未包含在powershell的环境变量里

    我们还可以使用&来执行文本命令,如cmd == &"cmd.exe"

     

    1. Powershell 命令集cmdlets

    cmdlets是Powershell的内部命令,cmdlet的类型名为System.Management.Automation.CmdletInfo,包含下列属性和方法:

    Name 

    MemberType 

    Definition 

    Equals 

    Method 

    bool Equals(System.Object obj) 

    GetHashCode 

    Method 

    int GetHashCode() 

    GetType 

    Method 

    type GetType() 

    ToString 

    Method 

    string ToString() 

    CommandType

    Property 

    System.Management.Automation.CommandTypes CommandType {get;} 

    DefaultParameterSet 

    Property 

    System.String DefaultParameterSet {get;} 

    Definition 

    Property 

    System.String Definition {get;} 

    HelpFile 

    Property 

    System.String HelpFile {get;} 

    ImplementingType

    Property 

    System.Type ImplementingType {get;} 

    Module 

    Property 

    System.Management.Automation.PSModuleInfo Module {get;} 

    ModuleName 

    Property 

    System.String ModuleName {get;} 

    Name 

    Property 

    System.String Name {get;} 

    Noun 

    Property 

    System.String Noun {get;}

    OutputType 

    Property 

    System.Collections.ObjectModel.ReadOnlyCollection`1[[System.Management.Automation.PSTypeName, System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] OutputType {get;} 

    Parameters 

    Property

    System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Management.Automation.ParameterMetadata, System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] Parameters {get;}

    ParameterSets 

    Property 

    System.Collections.ObjectModel.ReadOnlyCollection`1[[System.Management.Automation.CommandParameterSetInfo, System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] ParameterSets {get;}

    PSSnapIn 

    Property 

    System.Management.Automation.PSSnapInInfo PSSnapIn {get;} 

    Verb 

    Property 

    System.String Verb {get;} 

    Visibility 

    Property 

    System.Management.Automation.SessionStateEntryVisibility Visibility {get;set;} 

    DLL 

    ScriptProperty 

    System.Object DLL {get=$this.ImplementingType.Assembly.Location;} 

    HelpUri 

    ScriptProperty 

    System.Object HelpUri {get=try
    {
    # ok to cast CommandTypes enum to HelpCategory because string/indentifier for
    # cmdlet,function,filter,alias,externalscript is identical.
    # it is ok to fail for other enum values (i.e. for Application)
    $helpObject = get-help -Name ($this.Name) -Category ([string]($this.CommandType)) -ErrorAction SilentlyContinue# return first non-null uri (and try not to hit any strict mode things)
    if ($helpObject -eq $null) { return $null }
    if ($helpObject.psobject.properties['relatedLinks'] -eq $null) { return $null }
    if ($helpObject.relatedLinks.psobject.properties['navigationLink'] -eq $null) { return $null }
    $helpUri = [string]$( $helpObject.relatedLinks.navigationLink | %{ if ($_.psobject.properties['uri'] -ne $null) { $_.uri } } | ?{ $_ } | select -first 1 )
    return $helpUri
    }
    catch {};}

    下面是全部的Cmdlets命令

    每个命令有一个动词和名词组成,命令的作用一目了然。

    Name 

    ModuleName 

    Help 

    Add-Computer 

    Microsoft.PowerShell.Management 

    help

    Add-Content 

    Microsoft.PowerShell.Management 

    help

    Add-History 

    Microsoft.PowerShell.Core 

    help

    Add-Member 

    Microsoft.PowerShell.Utility 

    help

    Add-PSSnapin 

    Microsoft.PowerShell.Core

    help

    Add-Type 

    Microsoft.PowerShell.Utility 

    help

    Checkpoint-Computer 

    Microsoft.PowerShell.Management 

    help

    Clear-Content 

    Microsoft.PowerShell.Management 

    help

    Clear-EventLog 

    Microsoft.PowerShell.Management 

    help

    Clear-History 

    Microsoft.PowerShell.Core 

    help

    Clear-Item 

    Microsoft.PowerShell.Management 

    help

    Clear-ItemProperty 

    Microsoft.PowerShell.Management

    help

    Clear-Variable 

    Microsoft.PowerShell.Utility 

    help

    Compare-Object 

    Microsoft.PowerShell.Utility 

    help

    Complete-Transaction 

    Microsoft.PowerShell.Management 

    help

    Connect-WSMan 

    Microsoft.WSMan.Management 

    help

    ConvertFrom-Csv 

    Microsoft.PowerShell.Utility 

    help

    ConvertFrom-SecureString 

    Microsoft.PowerShell.Security 

    help

    ConvertFrom-StringData 

    Microsoft.PowerShell.Utility

    help

    Convert-Path 

    Microsoft.PowerShell.Management 

    help

    ConvertTo-Csv 

    Microsoft.PowerShell.Utility 

    help

    ConvertTo-Html 

    Microsoft.PowerShell.Utility 

    help

    ConvertTo-SecureString 

    Microsoft.PowerShell.Security 

    help

    ConvertTo-Xml 

    Microsoft.PowerShell.Utility 

    help

    Copy-Item 

    Microsoft.PowerShell.Management 

    help

    Copy-ItemProperty 

    Microsoft.PowerShell.Management

    help

    Debug-Process 

    Microsoft.PowerShell.Management 

    help

    Disable-ComputerRestore 

    Microsoft.PowerShell.Management 

    help

    Disable-PSBreakpoint 

    Microsoft.PowerShell.Utility 

    help

    Disable-PSSessionConfiguration 

    Microsoft.PowerShell.Core 

    help

    Disable-WSManCredSSP 

    Microsoft.WSMan.Management 

    help

    Disconnect-WSMan 

    Microsoft.WSMan.Management 

    help

    Enable-ComputerRestore 

    Microsoft.PowerShell.Management 

    help

    Enable-PSBreakpoint 

    Microsoft.PowerShell.Utility 

    help

    Enable-PSRemoting 

    Microsoft.PowerShell.Core 

    help

    Enable-PSSessionConfiguration 

    Microsoft.PowerShell.Core 

    help

    Enable-WSManCredSSP 

    Microsoft.WSMan.Management

    help

    Enter-PSSession 

    Microsoft.PowerShell.Core 

    help

    Exit-PSSession 

    Microsoft.PowerShell.Core 

    help

    Export-Alias 

    Microsoft.PowerShell.Utility 

    help

    Export-Clixml 

    Microsoft.PowerShell.Utility 

    help

    Export-Console 

    Microsoft.PowerShell.Core

    help

    Export-Counter 

    Microsoft.PowerShell.Diagnostics 

    help

    Export-Csv 

    Microsoft.PowerShell.Utility 

    help

    Export-FormatData 

    Microsoft.PowerShell.Utility 

    help

    Export-ModuleMember 

    Microsoft.PowerShell.Core 

    help

    Export-PSSession 

    Microsoft.PowerShell.Utility 

    help

    ForEach-Object 

    Microsoft.PowerShell.Core 

    help

    Format-Custom 

    Microsoft.PowerShell.Utility

    help

    Format-List 

    Microsoft.PowerShell.Utility 

    help

    Format-Table 

    Microsoft.PowerShell.Utility 

    help

    Format-Wide 

    Microsoft.PowerShell.Utility 

    help

    Get-Acl 

    Microsoft.PowerShell.Security 

    help

    Get-Alias

    Microsoft.PowerShell.Utility 

    help

    Get-AuthenticodeSignature 

    Microsoft.PowerShell.Security 

    help

    Get-ChildItem 

    Microsoft.PowerShell.Management

    help

    Get-Command 

    Microsoft.PowerShell.Core 

    help

    Get-ComputerRestorePoint 

    Microsoft.PowerShell.Management 

    help

    Get-Content 

    Microsoft.PowerShell.Management 

    help

    Get-Counter 

    Microsoft.PowerShell.Diagnostics 

    help

    Get-Credential 

    Microsoft.PowerShell.Security 

    help

    Get-Culture 

    Microsoft.PowerShell.Utility 

    help

    Get-Date 

    Microsoft.PowerShell.Utility

    help

    Get-Event 

    Microsoft.PowerShell.Utility 

    help

    Get-EventLog 

    Microsoft.PowerShell.Management 

    help

    Get-EventSubscriber 

    Microsoft.PowerShell.Utility 

    help

    Get-ExecutionPolicy 

    Microsoft.PowerShell.Security 

    help

    Get-FormatData 

    Microsoft.PowerShell.Utility 

    help

    Get-Help 

    Microsoft.PowerShell.Core 

    help

    Get-History 

    Microsoft.PowerShell.Core 

    help

    Get-Host 

    Microsoft.PowerShell.Utility 

    help

    Get-HotFix 

    Microsoft.PowerShell.Management 

    help

    Get-Item 

    Microsoft.PowerShell.Management 

    help

    Get-ItemProperty 

    Microsoft.PowerShell.Management 

    help

    Get-Job 

    Microsoft.PowerShell.Core

    help

    Get-Location 

    Microsoft.PowerShell.Management 

    help

    Get-Member 

    Microsoft.PowerShell.Utility 

    help

    Get-Module 

    Microsoft.PowerShell.Core 

    help

    Get-PfxCertificate 

    Microsoft.PowerShell.Security 

    help

    Get-Process

    Microsoft.PowerShell.Management 

    help

    Get-PSBreakpoint 

    Microsoft.PowerShell.Utility 

    help

    Get-PSCallStack 

    Microsoft.PowerShell.Utility

    help

    Get-PSDrive 

    Microsoft.PowerShell.Management 

    help

    Get-PSProvider 

    Microsoft.PowerShell.Management 

    help

    Get-PSSession 

    Microsoft.PowerShell.Core 

    help

    Get-PSSessionConfiguration 

    Microsoft.PowerShell.Core 

    help

    Get-PSSnapin 

    Microsoft.PowerShell.Core 

    help

    Get-Random 

    Microsoft.PowerShell.Utility 

    help

    Get-Service 

    Microsoft.PowerShell.Management 

    help

    Get-TraceSource 

    Microsoft.PowerShell.Utility 

    help

    Get-Transaction 

    Microsoft.PowerShell.Management 

    help

    Get-UICulture 

    Microsoft.PowerShell.Utility 

    help

    Get-Unique 

    Microsoft.PowerShell.Utility 

    help

    Get-Variable

    Microsoft.PowerShell.Utility 

    help

    Get-WinEvent 

    Microsoft.PowerShell.Diagnostics 

    help

    Get-WmiObject 

    Microsoft.PowerShell.Management 

    help

    Get-WSManCredSSP 

    Microsoft.WSMan.Management 

    help

    Get-WSManInstance 

    Microsoft.WSMan.Management 

    help

    Group-Object 

    Microsoft.PowerShell.Utility 

    help

    Import-Alias 

    Microsoft.PowerShell.Utility 

    help

    Import-Clixml 

    Microsoft.PowerShell.Utility

    help

    Import-Counter 

    Microsoft.PowerShell.Diagnostics 

    help

    Import-Csv 

    Microsoft.PowerShell.Utility 

    help

    Import-LocalizedData 

    Microsoft.PowerShell.Utility 

    help

    Import-Module 

    Microsoft.PowerShell.Core 

    help

    Import-PSSession 

    Microsoft.PowerShell.Utility 

    help

    Invoke-Command 

    Microsoft.PowerShell.Core 

    help

    Invoke-Expression 

    Microsoft.PowerShell.Utility

    help

    Invoke-History 

    Microsoft.PowerShell.Core 

    help

    Invoke-Item 

    Microsoft.PowerShell.Management 

    help

    Invoke-WmiMethod 

    Microsoft.PowerShell.Management 

    help

    Invoke-WSManAction 

    Microsoft.WSMan.Management 

    help

    Join-Path 

    Microsoft.PowerShell.Management 

    help

    Limit-EventLog 

    Microsoft.PowerShell.Management 

    help

    Measure-Command 

    Microsoft.PowerShell.Utility

    help

    Measure-Object 

    Microsoft.PowerShell.Utility 

    help

    Move-Item 

    Microsoft.PowerShell.Management 

    help

    Move-ItemProperty 

    Microsoft.PowerShell.Management 

    help

    New-Alias 

    Microsoft.PowerShell.Utility 

    help

    New-Event 

    Microsoft.PowerShell.Utility 

    help

    New-EventLog 

    Microsoft.PowerShell.Management 

    help

    New-Item 

    Microsoft.PowerShell.Management

    help

    New-ItemProperty 

    Microsoft.PowerShell.Management 

    help

    New-Module 

    Microsoft.PowerShell.Core 

    help

    New-ModuleManifest 

    Microsoft.PowerShell.Core 

    help

    New-Object 

    Microsoft.PowerShell.Utility 

    help

    New-PSDrive

    Microsoft.PowerShell.Management 

    help

    New-PSSession 

    Microsoft.PowerShell.Core 

    help

    New-PSSessionOption 

    Microsoft.PowerShell.Core 

    help

    New-Service 

    Microsoft.PowerShell.Management 

    help

    New-TimeSpan 

    Microsoft.PowerShell.Utility 

    help

    New-Variable 

    Microsoft.PowerShell.Utility 

    help

    New-WebServiceProxy 

    Microsoft.PowerShell.Management 

    help

    New-WSManInstance

    Microsoft.WSMan.Management 

    help

    New-WSManSessionOption 

    Microsoft.WSMan.Management 

    help

    Out-Default 

    Microsoft.PowerShell.Utility

    help

    Out-File 

    Microsoft.PowerShell.Utility 

    help

    Out-GridView 

    Microsoft.PowerShell.Utility 

    help

    Out-Host 

    Microsoft.PowerShell.Utility 

    help

    Out-Null 

    Microsoft.PowerShell.Utility 

    help

    Out-Printer 

    Microsoft.PowerShell.Utility

    help

    Out-String 

    Microsoft.PowerShell.Utility 

    help

    Pop-Location 

    Microsoft.PowerShell.Management 

    help

    Push-Location 

    Microsoft.PowerShell.Management 

    help

    Read-Host 

    Microsoft.PowerShell.Utility 

    help

    Receive-Job

    Microsoft.PowerShell.Core 

    help

    Register-EngineEvent 

    Microsoft.PowerShell.Utility 

    help

    Register-ObjectEvent 

    Microsoft.PowerShell.Utility

    help

    Register-PSSessionConfiguration 

    Microsoft.PowerShell.Core 

    help

    Register-WmiEvent 

    Microsoft.PowerShell.Management 

    help

    Remove-Computer 

    Microsoft.PowerShell.Management 

    help

    Remove-Event 

    Microsoft.PowerShell.Utility 

    help

    Remove-EventLog 

    Microsoft.PowerShell.Management 

    help

    Remove-Item 

    Microsoft.PowerShell.Management 

    help

    Remove-ItemProperty

    Microsoft.PowerShell.Management 

    help

    Remove-Job 

    Microsoft.PowerShell.Core 

    help

    Remove-Module 

    Microsoft.PowerShell.Core 

    help

    Remove-PSBreakpoint 

    Microsoft.PowerShell.Utility 

    help

    Remove-PSDrive 

    Microsoft.PowerShell.Management 

    help

    Remove-PSSession 

    Microsoft.PowerShell.Core 

    help

    Remove-PSSnapin 

    Microsoft.PowerShell.Core 

    help

    Remove-Variable 

    Microsoft.PowerShell.Utility

    help

    Remove-WmiObject 

    Microsoft.PowerShell.Management 

    help

    Remove-WSManInstance 

    Microsoft.WSMan.Management 

    help

    Rename-Item 

    Microsoft.PowerShell.Management 

    help

    Rename-ItemProperty 

    Microsoft.PowerShell.Management 

    help

    Reset-ComputerMachinePassword 

    Microsoft.PowerShell.Management 

    help

    Resolve-Path 

    Microsoft.PowerShell.Management 

    help

    Restart-Computer 

    Microsoft.PowerShell.Management 

    help

    Restart-Service 

    Microsoft.PowerShell.Management 

    help

    Restore-Computer

    Microsoft.PowerShell.Management 

    help

    Resume-Service 

    Microsoft.PowerShell.Management 

    help

    Select-Object 

    Microsoft.PowerShell.Utility 

    help

    Select-String 

    Microsoft.PowerShell.Utility 

    help

    Select-Xml 

    Microsoft.PowerShell.Utility 

    help

    Send-MailMessage 

    Microsoft.PowerShell.Utility 

    help

    Set-Acl 

    Microsoft.PowerShell.Security 

    help

    Set-Alias 

    Microsoft.PowerShell.Utility

    help

    Set-AuthenticodeSignature 

    Microsoft.PowerShell.Security 

    help

    Set-Content 

    Microsoft.PowerShell.Management 

    help

    Set-Date 

    Microsoft.PowerShell.Utility 

    help

    Set-ExecutionPolicy 

    Microsoft.PowerShell.Security 

    help

    Set-Item 

    Microsoft.PowerShell.Management 

    help

    Set-ItemProperty 

    Microsoft.PowerShell.Management 

    help

    Set-Location 

    Microsoft.PowerShell.Management

    help

    Set-PSBreakpoint 

    Microsoft.PowerShell.Utility 

    help

    Set-PSDebug 

    Microsoft.PowerShell.Core 

    help

    Set-PSSessionConfiguration 

    Microsoft.PowerShell.Core 

    help

    Set-Service 

    Microsoft.PowerShell.Management 

    help

    Set-StrictMode 

    Microsoft.PowerShell.Core 

    help

    Set-TraceSource 

    Microsoft.PowerShell.Utility 

    help

    Set-Variable 

    Microsoft.PowerShell.Utility

    help

    Set-WmiInstance 

    Microsoft.PowerShell.Management 

    help

    Set-WSManInstance 

    Microsoft.WSMan.Management 

    help

    Set-WSManQuickConfig 

    Microsoft.WSMan.Management 

    help

    Show-EventLog 

    Microsoft.PowerShell.Management 

    help

    Sort-Object 

    Microsoft.PowerShell.Utility 

    help

    Split-Path 

    Microsoft.PowerShell.Management 

    help

    Start-Job 

    Microsoft.PowerShell.Core

    help

    Start-Process 

    Microsoft.PowerShell.Management 

    help

    Start-Service 

    Microsoft.PowerShell.Management 

    help

    Start-Sleep 

    Microsoft.PowerShell.Utility 

    help

    Start-Transaction 

    Microsoft.PowerShell.Management 

    help

    Start-Transcript 

    Microsoft.PowerShell.Host 

    help

    Stop-Computer 

    Microsoft.PowerShell.Management 

    help

    Stop-Job 

    Microsoft.PowerShell.Core

    help

    Stop-Process 

    Microsoft.PowerShell.Management 

    help

    Stop-Service 

    Microsoft.PowerShell.Management 

    help

    Stop-Transcript 

    Microsoft.PowerShell.Host 

    help

    Suspend-Service 

    Microsoft.PowerShell.Management 

    help

    Tee-Object 

    Microsoft.PowerShell.Utility 

    help

    Test-ComputerSecureChannel 

    Microsoft.PowerShell.Management 

    help

    Test-Connection 

    Microsoft.PowerShell.Management

    help

    Test-ModuleManifest 

    Microsoft.PowerShell.Core 

    help

    Test-Path 

    Microsoft.PowerShell.Management 

    help

    Test-WSMan 

    Microsoft.WSMan.Management 

    help

    Trace-Command 

    Microsoft.PowerShell.Utility 

    help

    Undo-Transaction 

    Microsoft.PowerShell.Management 

    help

    Unregister-Event 

    Microsoft.PowerShell.Utility 

    help

    Unregister-PSSessionConfiguration

    Microsoft.PowerShell.Core 

    help

    Update-FormatData 

    Microsoft.PowerShell.Utility 

    help

    Update-List 

    Microsoft.PowerShell.Utility 

    help

    Update-TypeData 

    Microsoft.PowerShell.Utility 

    help

    Use-Transaction 

    Microsoft.PowerShell.Management 

    help

    Wait-Event 

    Microsoft.PowerShell.Utility 

    help

    Wait-Job 

    Microsoft.PowerShell.Core 

    help

    Wait-Process 

    Microsoft.PowerShell.Management

    help

    Where-Object 

    Microsoft.PowerShell.Core 

    help

    Write-Debug 

    Microsoft.PowerShell.Utility 

    help

    Write-Error 

    Microsoft.PowerShell.Utility 

    help

    Write-EventLog 

    Microsoft.PowerShell.Management 

    help

    Write-Host 

    Microsoft.PowerShell.Utility 

    help

    Write-Output 

    Microsoft.PowerShell.Utility 

    help

    Write-Progress 

    Microsoft.PowerShell.Utility

    help

    Write-Verbose 

    Microsoft.PowerShell.Utility 

    help

    Write-Warning 

    Microsoft.PowerShell.Utility 

    help

     

    1. Powershell别名

    cmdlet 的名称由一个动词和一个名词组成,其功能对用户来讲一目了然。但是对于一个经常使用powershell命令的人每天敲那么多命令也很麻烦啊。能不能把命令缩短一点呢?于是"别名"就应运而生了。Powershell内部也实现了很多常用命令的别名。例如Get-ChildItem,列出当前的子文件或目录。它有两个别名:ls dir,这两个别名来源于unix shellwindowscmd
    因此别名有两个作用:

    • 继承:继承unix-shellwindows-cmd
    • 方便:方便用户使用。

    处理别名:

    查询别名所指的真实cmdlet命令。

        

    查看可用别名

    查看可用的别名,可以通过" ls alias:" 或者 "Get-Alias"

    如何查看所有以Remove打头的cmdlet的命令的别名呢?

     

    说明:dir alias:获取的是别名的数组,通过where对数组元素进行遍历,$_代表当前元素,alias的Definition为String类型,因为powershell支持.net,.net中的string类有一个方法Startswith。通过where过滤集合在powershell中使用非常广泛。

    有的cmdlet命令可能有2-3个别名,我们可以通过下面的命令查看所有别名和指向cmdlet的别名的个数。

     

    创建自己的别名

    给记事本创建一个别名,并查看别名

    删除别名 del alias:edit

    Import-alias导入别名

    Export-alias导出别名

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    easyui 自定义editor扩展 propertygrid
    springboot 整合redis
    springboot 整合mybatis
    SpringBoot 打包war,并在tomcat中发布
    c# cef3 模拟浏览器上传文件
    c# cef3 判断文件下载是否完成
    c# cef3 关闭浏览器弹出新窗口
    c# 利用cef3抓取京东关键词商品列表,以手机为例
    c# 搭建cef3模拟浏览器
    c# TreeView实现三种选中状态
  • 原文地址:https://www.cnblogs.com/long-gengyun/p/3669190.html
Copyright © 2011-2022 走看看