Powershell中的目录书签?

时间:2011-11-02 17:50:47

标签: powershell

我最喜欢的Bash提示之一涉及创建用于标记和返回目录的别名,如下所述:http://www.huyng.com/archives/quick-bash-tip-directory-bookmarks/492/

在Bash中,它看起来像这样:

alias m1='alias g1="cd `pwd`"'

是否可以在PowerShell中创建类似的功能?

4 个答案:

答案 0 :(得分:4)

您可以将以下内容添加到$profile

$marks = @{};

$marksPath = Join-Path (split-path -parent $profile) .bookmarks

if(test-path $marksPath){
import-csv $marksPath | %{$marks[$_.key]=$_.value}
}

function m($number){
$marks["$number"] = (pwd).path
}

function g($number){
cd $marks["$number"]
}

function mdump{
$marks.getenumerator() | export-csv $marksPath -notype
}

function lma{
$marks
}

我不喜欢为每个m1m2等定义别名的方式。相反,您将执行m 1g 1等。

您也可以添加

Register-EngineEvent PowerShell.Exiting –Action { mdump } | out-null

以便在退出Powershell会话时执行mdump。不幸的是,如果你关闭控制台窗口,但是当你输入exit时不起作用。

PS:还看看CDPATH:CDPATH functionality in Powershell?

答案 1 :(得分:1)

这个项目非常有效:http://www.powershellmagazine.com/2016/05/06/powershell-location-bookmark-for-easy-and-faster-navigation/

安装:

Install-Module -Name PSBookmark

使用:

#This will save $PWD as scripts
save scripts 

#This will save C:\Documents as docs
save docs C:\Documents

#You don't have to type the alias name.
#Instead, you can just tab complete. This function uses dynamic parameters.
goto docs

答案 2 :(得分:0)

我在我的$ profile中使用这个技巧:我写这样的函数:

 function win { Set-Location c:\windows}

 $ProfileDir = $PROFILE.Substring(0 , $PROFILE.LastIndexOf("\")+1)
 function pro { Set-Location $profiledir}

依旧......

答案 3 :(得分:0)

很久以前,我创建了一些具有这种功能的模块。现在,我认为向Powershell galleryGitHub project添加链接非常稳定:)

安装模块功能:

main

基本用法:

Install-Module -Name Bookmarks

GitHub project页上列出了整个功能列表