我仍然是Powershell的新手,但我想将我喜欢的编辑器添加到Powershell中的Alias中。
我编辑了profile.ps1
中的C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
,它会在PowerShells启动时自动运行。
我尝试输入New-Alias np notepad.exe
,每次启动PowerShell时都能正常运行。
但是,我想使用Sublime Text 3
作为我的编辑。我按照此SO页面中的说明操作:How can I write a PowerShell alias with arguments in the middle?
Sublime Text
所需的命令行是"C:\Program Files\Sublime Text 3\sublime_text.exe" -n [FirstArg]
我说的是这样的:function sublime { 'C:\Program Files\Sublime Text 3\sublime_text.exe' -n $args }
它不起作用,我得到了这样的错误:
At C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1:5 char:72
+ ... lime { 'C:\Program Files\Sublime Text 3\sublime_text.exe' -n $args }
+ ~~
Unexpected token '-n' in expression or statement.
At C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1:5 char:75
+ ... lime { 'C:\Program Files\Sublime Text 3\sublime_text.exe' -n $args }
+ ~~~~~
Unexpected token '$args' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
如果不是Sublime用户,我怀疑这应该有效:
function Start-Sublime {
param([string]$args)
$limeArgs = [string]::Empty
if ($args -ne $null) {
$limeArgs = $args
}
Start-Process "$env:ProgramFiles\Sublime Text 3\sublime_text.exe" -n $limeArgs
}
Set-Alias lime Start-Sublime
不是最漂亮的PowerShell代码,但我想它会完成你所追求的目标。它比隐秘的&
运算符更容易理解。