Windows PowerShell 是windows平台下一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能。
对比下vbs和批处理
请输入图片描述
简直是神级的脚本了~(尤其是可以使用Native commands, COM对象和.Net对象)

作为一门如此强大的脚本,肯定是有复杂性的。
虽然如此,可以通过三个命令,来“自学”,它们就是
Get-help, Get-command, Get-member (望文生义,语义比较强)
以一个为例

PS C:\Users\Administrator> Get-Help Get-Process 
名称
    Get-Process  
摘要
    获取在本地计算机或远程计算机上运行的进程。
语法
    Get-Process [[-Name] <string[]>] [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

    Get-Process -Id <Int32[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

    Get-Process -InputObject <Process[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

说明
    Get-Process cmdlet 获取本地或远程计算机上的进程。
    如果没有参数,则 Get-Process 获取本地计算机上的所有进程。还可以通过进程名称或进程 ID (PID) 来指定特定进程,或将进程对象通过管道传送给 Get-Process。
    默认情况下,Get-Process 将返回一个进程对象,该对象包含有关进程的详细信息并且支持允许您启动和停止进程的方法。还可以使用 Get-Process 的参数来获取进程中运行的程序的文件版本信息以及获取进程加载的模块。
相关链接
    Online version: http://go.microsoft.com/fwlink/?LinkID=113324
    Get-Process 
    Start-Process 
    Stop-Process 
    Wait-Process 
    Debug-Process 
备注
    若要查看示例,请键入: "get-help Get-Process -examples".
    有关详细信息,请键入: "get-help Get-Process -detailed".
    若要获取技术信息,请键入: "get-help Get-Process -full".

还可以带-examples参数来获取提供的例子

以上知道后,来写个PS脚本运行吧? 且慢
传统的批处理、vbs脚本,写完后保存,直接双击就可以运行。如果是ps脚本,这样是行不通的。需要设置执行策略
Set-ExecutionPolicy <执行策略>
有四种策略:
- Restricted——默认的设置, 不允许任何script运行
- AllSigned——只能运行经过数字证书签名的script
- RemoteSigned——运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名
- Unrestricted——允许所有的script运行

入门级知识点有:
1.Write-Host/Write-Debug ... 等等Write系列的
2.Get-member/Get-Process/Get-Date
3.变量的定义

PS C:\Users\Administrator> $a="i am ps"
PS C:\Users\Administrator> "$a"
i am ps
PS C:\Users\Administrator> '$a'
$a
单引号和双引号是有差别的

类型也可以强制声明
PS C:\Users\Administrator> [int]$i=10

4.Where-Object

PS C:\Users\Administrator> $p = Get-Process | Where-Object {$_ -like "*qq*"}
PS C:\Users\Administrator> $p

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName          
-------  ------    -----      ----- -----   ------     -- ----------- 
   1176      99   147560      90480   491    22.12   4348 QQ  
    305      36    11700        980   153     0.47   6232 QQPCNetFlow  
    323      49    21372      34836   160     4.54   4240 QQPCRealTimeSpeedup
    696      61    30960      16036   265     7.08    972 QQPCRTP        
   1274      87    40860      13056   330    10.03   2724 QQPCTray         
    355      29    16820       6072   121     0.67   2660 QQProtect  

4.函数的定义
function TestFunc([string]$pa)
{
#function body
}
函数的调用 TestFunc "test"
5.Get-Process | Out-File -Append txt.txt
或者 Get-Process >> txt.txt (使用重定向符)
6. 其他好玩的
比如一下(很像Python啊)

PS C:\Users\Administrator> 3*4*5
60    

PS C:\Users\Administrator> [math]::pi
3.14159265358979

PS C:\Users\Administrator> "*"*10
**********

agentwx
354 声望23 粉丝

引用和评论

0 条评论