在命令行中定義別名、變量和函數,只是將它們添加在當前PowerShell的會話中。退出會話后,這些更改就會丟失。想要在以后的會話中也能使用它們,就要將它們定義在配置文件中。
配置文件
PowerShell的配置文件,不像Windows操作系統中那樣使用.ini文件,也不像多數應用程序那樣使用XML文件。PowerShell的配置文件都是些普通的PowerShell腳本文件。需要注意的是,這些配置文件的文件名是固定、不能更改的。并且它們受到腳本執行策略的約束,就是說在默認情況下,也就是腳本執行策略為Restricted的時候,這些配置文件也不能被執行,也就是無效的。
配置文件詳細
影響PowerShell命令行的配置文件總共4個,它們的名字分別存貯在變量$PROFILE.AllUsersAllHosts、 $PROFILE.AllUsersCurrentHost、$PROFILE.CurrentUserAllHosts和$PROFILE.CurrentUserCurrentHost(可簡寫為$PROFILE)中。它們的作用范圍分別為“所有用戶所有Shell”、“所有用戶當前Shell”、“當前用戶所有Shell”和“當前用戶當前Shell”。以上配置文件按加載順序給出,如果有沖突項,后者覆蓋前者。
需要說明一下,“用戶”的概念跟計算機中的用戶概念相同;這里的“Shell”或者叫“主機程序”,是指Shell分類,而非打開的一個個PowerShell示例(會話)。我們常見的Shell種類有兩種,PowerShell命令行和PowerShell ISE環境。其余還有那些Shell或者主機類型,我沒仔細考究。
PowerShell ISE的配置文件
PowerShell ISE也是我們常用的PowerShell環境,它也有4個配置文件。其中兩個影響所有主機或者Shell的配置文件是與PowerShell命令行共用的,影響當前主機程序或者Shell的,則有專門的配置文件。這些配置文件的全名(包括路徑)也存儲在$Profile的屬性中,屬性名跟在PowerShell命令行中的一致,但是屬性值不同,反映的是ISE的配置文件名信息。
定義配置文件
配置文件雖然名稱已經確定,但它們不會隨PowerShell安裝自動生成,而是需要使用者在需要的時候自己創建。它們的創建過程跟一般腳本的創建過程一樣。關于腳本文件的詳細信息,可參見“PowerShell入門(八):函數、腳本、作用域”。但請務必保證自己創建的配置文件的路徑和文件名(包括擴展名.ps1)都要跟系統定義的完全一致,否則無效。
四個配置文件的定義方式完全相同,下面以影響當前用戶當前Shell的配置文件為例,說明定義配置文件的過程:
1、創建配置文件
任何創建文本文件的方式,在這里都適用。但請注意文件的擴展名必須是.ps1。簡單起見,我們使用命令類創建,命令如下:
代碼如下:
New-Item -ItemType file -Path $PROFILE -Force
新聞熱點
疑難解答