Powershell基础知识


Powershell基础知识

文章插图
 
 
windows PowerShell 是windows平台下一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能 。对比下vbs和批处理
Powershell基础知识

文章插图
 
简直是神级的脚本了~(尤其是可以使用Native commands, COM对象和.Net对象)
而且,随着.net core的出现,powershell 已经在linux和mac也可以用了 。这个才是真的跨平台脚本shell语言啊
【Powershell基础知识】作为一门如此强大的脚本,肯定是有复杂性的 。虽然如此,可以通过三个命令,来“自学”,它们就是Get-help, Get-command, Get-member (望文生义,语义比较强)以一个为例
PS C:UsersAdministrator> 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=113324Get-ProcessStart-ProcessStop-ProcessWait-ProcessDebug-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-Date3.变量的定义
PS C:UsersAdministrator> $a="i am ps"PS C:UsersAdministrator> "$a"i am psPS C:UsersAdministrator> '$a'$a单引号和双引号是有差别的类型也可以强制声明PS C:UsersAdministrator> [int]$i=10
4.Where-Object
PS C:UsersAdministrator> $p = Get-Process | Where-Object {$_ -like "*qq*"}PS C:UsersAdministrator> $pHandlesNPM(K)PM(K)WS(K) VM(M)CPU(s)Id ProcessName----------------------- ------------- -----------1176991475609048049122.124348 QQ30536117009801530.476232 QQPCNetFlow3234921372348361604.544240 QQPCRealTimeSpeedup6966130960160362657.08972 QQPCRTP127487408601305633010.032724 QQPCTray355291682060721210.672660 QQProtect4.函数的定义function TestFunc([string]$pa){#function body}函数的调用 TestFunc "test"5.Get-Process | Out-File -Append txt.txt或者 Get-Process >> txt.txt (使用重定向符)6. 其他好玩的比如一下(很像Python啊)
PS C:UsersAdministrator> 3*4*560PS C:UsersAdministrator> [math]::pi3.14159265358979PS C:UsersAdministrator> "*"*10**********



    推荐阅读