该术语在cmder / powershell中不被识别为cmdlet函数脚本文件或可操作程序

时间:2016-08-16 17:28:38

标签: powershell cmder

我使用cmder,并在cmder / config / user-profile.ps1中的user-profile.ps1中为powershell创建了一些别名。

该文件看起来像这样

# Use this file to run your own startup commands
New-Alias subl "C:\Program Files\Sublime Text 3\sublime_text.exe"
New-Alias mysql "D:\wamp\bin\mysql\mysql5.7.11\bin\mysql.exe"
New-Alias o Invoke-Item
New-Alias c Clear-Host
New-Alias hosts "subl $env:windir\System32\drivers\etc\hosts"
New-Alias .. "cd .."
New-Alias www "cd d:\wamp\www"

除了'..','www'和'hosts'之外,所有别名都能正常工作。例如,当我写'主机'时,它会给我一个像

这样的错误
The term "subl C:\Windows\System32\drivers\etc\hosts" is not recognized as cmdlet function script file or operable program
At line:1 char:1
+ hosts
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (subl C:\Windows...ivers\etc\hosts:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

但是,当我在cmder'subl C:\ Windows \ System32 \ drivers \ etc \ hosts'中写入时,它可以工作。有什么问题?

1 个答案:

答案 0 :(得分:2)

在PowerShell中,Alias是命令的映射 - 而不仅仅是任何类型的表达式。

如果您希望hosts在Sublime中打开hosts文件,请改为定义一个函数:

function hosts { subl $env:windir\System32\drivers\etc\hosts }

..www

相同
function .. { cd .. }
function www { cd d:\wamp\www }