PowerShell入門(mén)教程之創(chuàng)建和使用配置文件實(shí)例
在命令行中定義別名、變量和函數(shù),只是將它們添加在當(dāng)前PowerShell的會(huì)話中。退出會(huì)話后,這些更改就會(huì)丟失。想要在以后的會(huì)話中也能使用它們,就要將它們定義在配置文件中。
配置文件
PowerShell的配置文件,不像Windows操作系統(tǒng)中那樣使用.ini文件,也不像多數(shù)應(yīng)用程序那樣使用XML文件。PowerShell的配置文件都是些普通的PowerShell腳本文件。需要注意的是,這些配置文件的文件名是固定、不能更改的。并且它們受到腳本執(zhí)行策略的約束,就是說(shuō)在默認(rèn)情況下,也就是腳本執(zhí)行策略為Restricted的時(shí)候,這些配置文件也不能被執(zhí)行,也就是無(wú)效的。
配置文件詳細(xì)
影響PowerShell命令行的配置文件總共4個(gè),它們的名字分別存貯在變量$PROFILE.AllUsersAllHosts、 $PROFILE.AllUsersCurrentHost、$PROFILE.CurrentUserAllHosts和$PROFILE.CurrentUserCurrentHost(可簡(jiǎn)寫(xiě)為$PROFILE)中。它們的作用范圍分別為“所有用戶所有Shell”、“所有用戶當(dāng)前Shell”、“當(dāng)前用戶所有Shell”和“當(dāng)前用戶當(dāng)前Shell”。以上配置文件按加載順序給出,如果有沖突項(xiàng),后者覆蓋前者。
需要說(shuō)明一下,“用戶”的概念跟計(jì)算機(jī)中的用戶概念相同;這里的“Shell”或者叫“主機(jī)程序”,是指Shell分類(lèi),而非打開(kāi)的一個(gè)個(gè)PowerShell示例(會(huì)話)。我們常見(jiàn)的Shell種類(lèi)有兩種,PowerShell命令行和PowerShell ISE環(huán)境。其余還有那些Shell或者主機(jī)類(lèi)型,我沒(méi)仔細(xì)考究。
PowerShell ISE的配置文件
PowerShell ISE也是我們常用的PowerShell環(huán)境,它也有4個(gè)配置文件。其中兩個(gè)影響所有主機(jī)或者Shell的配置文件是與PowerShell命令行共用的,影響當(dāng)前主機(jī)程序或者Shell的,則有專(zhuān)門(mén)的配置文件。這些配置文件的全名(包括路徑)也存儲(chǔ)在$Profile的屬性中,屬性名跟在PowerShell命令行中的一致,但是屬性值不同,反映的是ISE的配置文件名信息。
定義配置文件
配置文件雖然名稱已經(jīng)確定,但它們不會(huì)隨PowerShell安裝自動(dòng)生成,而是需要使用者在需要的時(shí)候自己創(chuàng)建。它們的創(chuàng)建過(guò)程跟一般腳本的創(chuàng)建過(guò)程一樣。關(guān)于腳本文件的詳細(xì)信息,可參見(jiàn)“PowerShell入門(mén)(八):函數(shù)、腳本、作用域”。但請(qǐng)務(wù)必保證自己創(chuàng)建的配置文件的路徑和文件名(包括擴(kuò)展名.ps1)都要跟系統(tǒng)定義的完全一致,否則無(wú)效。
四個(gè)配置文件的定義方式完全相同,下面以影響當(dāng)前用戶當(dāng)前Shell的配置文件為例,說(shuō)明定義配置文件的過(guò)程:
1、創(chuàng)建配置文件
任何創(chuàng)建文本文件的方式,在這里都適用。但請(qǐng)注意文件的擴(kuò)展名必須是.ps1。簡(jiǎn)單起見(jiàn),我們使用命令類(lèi)創(chuàng)建,命令如下:
New-Item -ItemType file -Path $PROFILE -Force
2、編輯配置文件
用記事本或者任意文本編輯器打開(kāi)配置文件,添加你的配置項(xiàng)。這些配置項(xiàng)可以實(shí)定義別名、變量、函數(shù),也可以運(yùn)行命令,用點(diǎn)“.”獲取來(lái)源,導(dǎo)入模塊等。下面是定義變量和用點(diǎn)“.”獲取來(lái)源的示例。(假設(shè)我有一個(gè)腳本文件,名字叫myScript.ps1,里邊定義了一個(gè)函數(shù)HelloWorld())
$greet = "Hello Luke!"
. .\myScript.ps1
將以上內(nèi)容輸入配置文件,保存、關(guān)閉。
3、驗(yàn)證配置文件
打開(kāi)一個(gè)新的PowerShell命令行,輸入$greet,回車(chē),結(jié)果顯示Hello Luke!;輸入HelloWorld,回車(chē),結(jié)果顯示Hellow, World!。打開(kāi)PowerShell ISE,輸入$greet,回車(chē),啥也沒(méi)有;輸入HelloWorld,顯示未能找到命令的錯(cuò)誤。哈哈,驗(yàn)證通過(guò)。
結(jié)語(yǔ)
配置文件既為公司或者項(xiàng)目組統(tǒng)一PowerShell環(huán)境提供了簡(jiǎn)易的方案——為所有工作機(jī)提供相同的影響所有用戶所有Shell的配置文件,也為程序員的個(gè)性化要求提供了方法——自己定義影響當(dāng)前用戶當(dāng)前Shell的配置文件。此外,配置文件提高PowerShell交互式命令行的效率是有目共睹的,但對(duì)于想要精確控制變量定義、模塊導(dǎo)入的腳本來(lái)說(shuō),可能是個(gè)隱患。所以,哪些內(nèi)容應(yīng)該寫(xiě)入配置文件,請(qǐng)慎重考慮。
- PowerShell入門(mén)教程之訪問(wèn).Net程序集、COM和WMI實(shí)例
- PowerShell入門(mén)教程之函數(shù)、腳本、作用域介紹
- PowerShell入門(mén)教程之PowerShell管道介紹
- PowerShell入門(mén)教程之遠(yuǎn)程操作運(yùn)行PowerShell的方法
- PowerShell入門(mén)教程之Cmd命令與PowerShell命令相互調(diào)用的方法
- PowerShell入門(mén)教程之高效使用PowerShell交互式運(yùn)行環(huán)境的幾個(gè)小技巧
- PowerShell入門(mén)教程之快速學(xué)習(xí)PowerShell的幾個(gè)方法
- PowerShell入門(mén)教程之PowerShell和Cmd命令行的關(guān)系?
- PowerShell入門(mén)教程之PowerShell有什么用?
- PowerShell入門(mén)教程之編寫(xiě)和使用腳本模塊實(shí)例
相關(guān)文章
PowerShell正則表達(dá)式(Regex)從右往左進(jìn)行匹配方法代碼實(shí)例
這篇文章主要介紹了PowerShell正則表達(dá)式(Regex)從右往左進(jìn)行匹配方法代碼實(shí)例,最重要的就是一個(gè)RightToLeft參數(shù)的運(yùn)用,本文直接給出代碼實(shí)例,需要的朋友可以參考下2015-05-05Powershell小技巧之使用Jint引擎在PowerShell中執(zhí)行Javascript函數(shù)
這里演示如何利用PowerShell將一段Javascript函數(shù)字符串交給Jint引擎去執(zhí)行。方法很簡(jiǎn)單,希望對(duì)大家有所幫助2014-09-09windows Powershell 快速編輯模式和標(biāo)準(zhǔn)模式
powershell控制臺(tái)有兩種模式,一個(gè)是快速編輯模式,一個(gè)是標(biāo)準(zhǔn)模式。2014-08-08PowerShell中改變F1幫助文檔命令獲取方式為在線文檔的方法
這篇文章主要介紹了PowerShell中改變F1幫助文檔命令獲取方式為在線文檔的方法,本文使用一個(gè)自定義函數(shù)實(shí)現(xiàn)需求,需要的朋友可以參考下2015-03-03PowerShell查找數(shù)組內(nèi)容、搜索數(shù)組、查詢數(shù)組的方法
這篇文章主要介紹了PowerShell查找數(shù)組內(nèi)容、搜索數(shù)組、查詢數(shù)組的方法,使用PowerShell中的一些操作符來(lái)實(shí)現(xiàn)搜索功能,需要的朋友可以參考下2014-08-08PowerShell函數(shù)中使用$PSBoundParameters獲取輸入?yún)?shù)列表實(shí)例
這篇文章主要介紹了PowerShell函數(shù)中使用$PSBoundParameters獲取輸入?yún)?shù)列表實(shí)例,需要的朋友可以參考下2014-07-07PowerShell中使用.NET將程序集加入全局程序集緩存
這篇文章主要介紹了PowerShell中使用.NET將程序集加入全局程序集緩存,本文介紹了兩種方法實(shí)現(xiàn)把程序集加入全局程序集緩存,著重講解了使用.Net的類(lèi)庫(kù)解決這個(gè)需求,需要的朋友可以參考下2015-06-06Powershell小技巧之使用WMI查詢插上的U盤(pán)
本文主要講訴了如何使用WMI查詢當(dāng)前插在你電腦上的USB設(shè)備,非常簡(jiǎn)單,學(xué)習(xí)powershell的同學(xué)可以參考下2014-09-09