Powershell基礎知識


Powershell基礎知識


Windows PowerShell 是windows平臺下一種命令行外殼程序和腳本環境,使命令行用戶和腳本編寫者可以利用 .NET Framework 的強大功能。對比下vbs和批處理

Powershell基礎知識

簡直是神級的腳本了~(尤其是可以使用Native commands, COM對象和.Net對象)

而且,隨著.net core的出現,powershell 已經在linux和mac也可以用了。這個才是真的跨平臺腳本shell語言啊

作為一門如此強大的腳本,肯定是有複雜性的。雖然如此,可以通過三個命令,來“自學”,它們就是Get-help, Get-command, Get-member (望文生義,語義比較強)以一個為例

<code>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"./<commonparameters>/<string>/<process>/<commonparameters>/<string>/<int32>/<commonparameters>/<string>/<string>/<code>

還可以帶-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.變量的定義

<code>PS C:\\Users\\Administrator> $a="i am ps"PS C:\\Users\\Administrator> "$a"i am psPS C:\\Users\\Administrator> '$a'$a單引號和雙引號是有差別的/<code>

類型也可以強制聲明PS C:\\Users\\Administrator> [int]$i=10

4.Where-Object

<code>PS C:\\Users\\Administrator> $p = Get-Process | Where-Object {$_ -like "*qq*"}PS C:\\Users\\Administrator> $pHandles  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  /<code>

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

<code>PS C:\\Users\\Administrator> 3*4*560    PS C:\\Users\\Administrator> [math]::pi3.14159265358979PS C:\\Users\\Administrator> "*"*10**********/<code>


分享到:


相關文章: