我使用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'中写入时,它可以工作。有什么问题?
答案 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 }