创建别名以快速导航到文件夹
我想在我的PowerShell配置文件加载脚本中包含,这使得我可以轻松浏览不同的文件夹(不同代码存储库)。创建别名以快速导航到文件夹
我见过使用New-PSDrive的例子,但我认为别名是一种更流畅的方法。别名只是感觉更好。
我正在寻找这样的事情:在在PowerShell控制台
(在profile.ps1)
New-Item alias:foo -value c:\repos\my\code\here
...后来...:
cd $foo
瞧!我现在站在c:\repos\my\code\here
目录中。
什么是正确的方法?
编辑:我已经标记了Martins的答案,因为它非常直截了当,但我建议你也读马特的答案,它有一些很好的观点。
我会创建一个包含所有你的版本库一个$repos
哈希表:
$repos = @{
angular = 'c:\repos\my\angular\here'
typescript = 'c:\repos\my\typescript\here'
csharp = 'c:\repos\my\csharp\here'
}
在$profile
将这个,你可以改变的目录是这样的:
cd $repos.angular
即使使用tab-completion!
$var = 'c:\repos\my\code\here'
cd $var
你必须在'c:\ repos \ my \ code \ here'周围有引号,但除了它似乎工作。 –
什么是正确的方法?
没有正确或错误的方法。别名很有用,但它们仅适用于通过其他名称调用其他cmdlet。您不能更改设置或添加参数等。
还有一件事要考虑的是在您的配置文件中使用Push-Location
和Pop-Location
自定义功能!这样你就可以改变到你需要的地方,并在你完成后回到原来的位置。
function myfolder{
Push-Location c:\temp
}
function imdone{
Pop-Location
}
调用myfolder
与目录更改为c:\temp
。做你的东西...甚至改变到其他目录。 imdone
会带你回到之前你叫myfolder
。添加更多的目录来翻转可能会使这个复杂化,但你可以命名栈返回。 Push和Pop对此足够强大。
这可以很容易地与Martin's answer合并为一个更强大的配置文件,更容易进行集中更改。
即使您没有Push-Location
和Pop-Location
的功能,您也可以在功能中使用cd "path"
并根据您的需要命名它们。
function tmp{cd "c:\temp"}
只要注意不要使用可能已被采用的名称。你可能会得到一个precedence issue
将所有这些封装到函数中很有趣。好的提示。 –
看起来很酷;) – 4c74356b41
看起来很酷,但不幸的是它不起作用,在键入哈希文字后出现'Missing'='操作符 –
你可能做错了什么。你可以发布你的个人资料中的代码吗? –