我最近安装了Windows 10,其中包括PowerShell的V5或准确的5.1.14393.206
($PSVersionTable.PSVersion
)。
在新计算机上,我安装了PSReadline。但是,Windows 10已经安装了它。
我的问题是,当没有配置文件导入时,PSReadline如何自动加载(或从中调用命令)?
作为证据,我运行了这段代码:
$PROFILE | Get-Member -MemberType NoteProperty | % {
$path = $PROFILE.$($_.Name);
$exists = Test-Path $path;
[pscustomobject]@{ Path = $path; Exists = $exists }
}
要得到这个:
Path Exists
---- ------
C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 False
C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1 False
C:\Users\tahir\Documents\WindowsPowerShell\profile.ps1 False
C:\Users\tahir\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 False
我已经完成了所有https://stackoverflow.com/a/23942543/288393:
Import-Module
,因为没有要调用的个人资料。有人可以解释这种行为吗?
答案 0 :(得分:3)
如果进程是交互式的,控制台主机中有特殊代码可以加载PSReadline。您可以看到代码here。
答案 1 :(得分:0)
PSReadline位于预定义的模块文件夹C:\Program Files\WindowsPowerShell\Modules
中,因为它在这里PowerShell的自动cmdlet发现和模块加载过程将选择模块并在其中的任何函数被调用时加载它。这个过程added in PS v3。