我最近安装了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:
  • 由于没有可调用的配置文件,因此未调用PSReadline的Import-Module
  • PSReadline模块内未执行任何命令,因为像以前一样,没有可用于调用它的配置文件。

  • 有人可以解释这种行为吗?

    最佳答案

    如果过程是交互式的,则控制台主机中有特殊的代码可以加载PSReadline。您可以看到代码here

    07-27 21:20