.psl脚本介绍
.ps1文件是PowerShell寫好的腳本文件
可以在記事本中寫一段PowerShell代碼,然后將其保存為“xxx.ps1”,后面要使用它的時候,雙擊即可運(yùn)行了。這有點(diǎn)像批處理的“.bat”文件,也有點(diǎn)像VBScript的“.vbs”文件。這些都是Windows的腳本文件。
在線教程
Powershell 是運(yùn)行在windows機(jī)器上實(shí)現(xiàn)系統(tǒng)和應(yīng)用程序管理自動化的命令行腳本環(huán)境。
powershell需要.NET環(huán)境的支持,同時支持.NET對象。微軟之所以將Powershell 定位為Power,并不是夸大其詞,因?yàn)樗耆С謱ο蟆F淇勺x性,易用性,可以位居當(dāng)前所有shell之首。
cmdlets是Powershell的內(nèi)部命令,cmdlet的類型名為System.Management.Automation.CmdletInfo
Powershell 命令集 cmdlets
別名
有兩個作用:
繼承:繼承unix-shell和windows-cmd。
方便:方便用戶使用。
象運(yùn)行可執(zhí)行文件一樣,Powershell運(yùn)行文件和腳本
必須使用絕對路徑或者相對路徑,或者要運(yùn)行的文件必須定義在可受信任的環(huán)境變量中。
腳本和批處理都屬于偽可執(zhí)行文件,它們只是包含了若干命令行解釋器能夠解釋和執(zhí)行的命令行代碼。
批處理文件
擴(kuò)展名為”.bat”的文本文件
可以包含任何cmd控制臺能夠處理的命令。當(dāng)批處理文件被打開,Cmd控制臺會逐行執(zhí)行每條命令。
通過cmd進(jìn)入cmd控制臺輸入ping發(fā)現(xiàn)執(zhí)行的不是ping命令,而是直接運(yùn)行ping.bat ,也就是說可以通過.bat 覆蓋cmd命令。這種機(jī)制很危險,如果有人侵入電腦,并將系統(tǒng)內(nèi)部命令篡改成自己批處理,那就太悲劇了。 這種命令與腳本的混淆不會發(fā)生在powershell中,因?yàn)閜owershell有更安全的機(jī)制。
VB腳本文件
擴(kuò)展名為”.vbs”的文本文件
powershell腳本
擴(kuò)展名為“.ps1”
Powershell調(diào)用入口的優(yōu)先級
別名:控制臺首先會尋找輸入是否為一個別名,如果是,執(zhí)行別名所指的命令。因此我們可以通過別名覆蓋任意powershell命令,因?yàn)閯e名的優(yōu)先級最高。
函數(shù):如果沒有找到別名,會繼續(xù)尋找函數(shù),函數(shù)類似別名,只不過它包含了更多的powershell命令。因此可以自定義函數(shù)擴(kuò)充cmdlet 把常用的參數(shù)給固化進(jìn)去。
命令:如果沒有找到函數(shù),控制臺會繼續(xù)尋找命令,即cmdlet,powershell的內(nèi)部命令。
腳本:沒有找到命令,繼續(xù)尋找擴(kuò)展名為“.ps1”的Powershell腳本。
文件:沒有找到腳本,會繼續(xù)尋找文件,如果沒有可用的文件,控制臺會拋出異常。
變量
powershell 不需要顯示地去聲明,可以自動創(chuàng)建變量
變量的前綴為$
單引號中的字符串不會識別和處理變量名,變量名均是以美元符”$”開始,剩余字符可以是數(shù)字、字母、下劃線的任意字符
變量名大小寫不敏感
某些特殊的字符在powershell中有特殊的用途,一般不推薦使用這些字符作為變量名。當(dāng)然你硬要使用,請把整個變量名后綴用花括號括起來
不僅能給一個變量賦值,還可以同時給多個變量賦相同的值
交換兩個變量的值,這個功能變得非常簡單(PS C: est> $value1,$value2=$value2,$value1)
將變量的相關(guān)信息的記錄存放在名為variable:的驅(qū)動中。如果要查看所有定義的變量,可以直接遍歷variable:(PS C: est> ls variable:)
因?yàn)橛刑摂M驅(qū)動variable:的存在,可以象查找文件那樣使用通配符查找變量。例如要查詢以value打頭的變量名。(PS C: est> ls variable:value*)
驗(yàn)證一個變量是否存在,仍然可以象驗(yàn)證文件系統(tǒng)那樣,使用cmdlet Test-Path。為什么?因?yàn)樽兞看嬖谧兞框?qū)動器中(PS C: est> Test-Path variable:value1)
因?yàn)樽兞繒趐owershell退出或關(guān)閉時,自動清除。一般沒必要刪除,但是你非得刪除,也可以象刪除文件那樣刪除它。(PS C: est> del variable:value1)
為了管理變量,powershell提供了五個專門管理變量的命令Clear-Variable,Get-Variable,New-Variable,Remove-Variable,Set-Variable。因?yàn)樘摂M驅(qū)動器variable:的存在,clear,remove,set打頭的命令可以被代替。但是Get-Variable,New-Variable卻非常有用new-variable可以在定義變量時,指定變量的一些其它屬性,比如訪問權(quán)限。同樣Get-Variable也可以獲取這些附加信息。
使用New-Variable 的option選項(xiàng) 在創(chuàng)建變量時,給變量加上只讀屬性,這樣就不能給變量重新賦值了。(PS C: est> New-Variable num -Value 100 -Force -Option readonly)
但是可以通過刪除變量,再重新創(chuàng)建變量更新變量內(nèi)容。
有沒有權(quán)限更高的變量,有,那就是:選項(xiàng)Constant,常量一旦聲明,不可修改(PS C: est> new-variable num -Value "strong" -Option constant)
在New-Variable 可以通過-description 添加變量描述(PS C: est> new-variable name -Value "me" -Description "This is my name")
但是變量描述默認(rèn)不會顯示,可以通過Format-List 查看。(PS C: est> ls Variable:name | fl *)
賦值操作符為“=”,幾乎可以把任何數(shù)據(jù)賦值給一個變量,甚至一條cmdlet命令。為什么?因?yàn)镻owershell支持對象,對象可以包羅萬象。
自動化變量
是那些一旦打開Powershell就會自動加載的變量。
這些變量一般存放的內(nèi)容包括
用戶信息:例如用戶的根目錄$home
配置信息:例如powershell控制臺的大小,顏色,背景等。
運(yùn)行時信息:例如一個函數(shù)由誰調(diào)用,一個腳本運(yùn)行的目錄等。
總結(jié)
- 上一篇: zabbix mysql复制延迟_mys
- 下一篇: MDT部署双硬盘选择