创建别名以快速导航到文件夹

问题描述:

我想在我的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

+1

看起来很酷;) – 4c74356b41

+0

看起来很酷,但不幸的是它不起作用,在键入哈希文字后出现'Missing'='操作符 –

+0

你可能做错了什么。你可以发布你的个人资料中的代码吗? –

$var = 'c:\repos\my\code\here' 
cd $var 
+0

你必须在'c:\ repos \ my \ code \ here'周围有引号,但除了它似乎工作。 –

什么是正确的方法?

没有正确或错误的方法。别名很有用,但它们仅适用于通过其他名称调用其他cmdlet。您不能更改设置或添加参数等。

还有一件事要考虑的是在您的配置文件中使用Push-LocationPop-Location自定义功能!这样你就可以改变到你需要的地方,并在你完成后回到原来的位置。

function myfolder{ 
    Push-Location c:\temp 
} 

function imdone{ 
    Pop-Location 
} 

调用myfolder与目录更改为c:\temp。做你的东西...甚至改变到其他目录。 imdone会带你回到之前你叫myfolder。添加更多的目录来翻转可能会使这个复杂化,但你可以命名栈返回。 Push和Pop对此足够强大。

这可以很容易地与Martin's answer合并为一个更强大的配置文件,更容易进行集中更改。

即使您没有Push-LocationPop-Location的功能,您也可以在功能中使用cd "path"并根据您的需要命名它们。

function tmp{cd "c:\temp"} 

只要注意不要使用可能已被采用的名称。你可能会得到一个precedence issue

+0

将所有这些封装到函数中很有趣。好的提示。 –