Powershell 控制台配置文件别名(功能)不起作用,为什么?

Powershell 控制台配置文件别名(功能)不起作用,为什么?

此 TechNet 页面表示仅当前用户和所有 shell 的控制台配置文件的位置应为:

%UserProfile%\Documents\Windows­PowerShell\profile.ps1

就我而言,%UserProfile%要点如下:

 C:\Users\vlastimil

因此,我创建了以下文件:

C:\Users\vlastimil\Documents\Windows­PowerShell\profile.ps1

目前它包含两个函数:

function sha256sum([string]$arg) {
    (Get-FileHash -Algorithm SHA256 $arg | Select -ExpandProperty Hash).ToLower()
}

function sha512sum([string]$arg) {
    (Get-FileHash -Algorithm SHA512 $arg | Select -ExpandProperty Hash).ToLower()
}

但是调用这些函数会引发错误:

PS C:\Users\vlastimil> sha512sum
sha512sum : The term 'sha512sum' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ sha512sum
+ ~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (sha512sum:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

由于我对Windows了解甚少,所以我不知道问题出在哪里。


操作系统:Windows 10 Pro 1709

答案1

个人资料位置已显示:

echo $PROFILE
C:\Users\vlastimil\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

因此,更改路径+名称后,问题已解决。

答案2

如果您运行的是 powershell 控制台或 powershell ISE,则会有所不同。

https://blogs.technet.microsoft.com/heyscriptingguy/2012/05/21/understanding-the-six-powershell-profiles/

仅当从控制台运行时,配置文件的放置位置才会起作用。ISE 不会看到或使用此配置文件。

相关内容