并非以我所知道的完全相同的方式。一种选择是使用push而不是cd。然后弹出将带您返回。
您还可以更改个人资料,以便每当出现新提示时(基本上是在您按下Enter键时)。它将获得PWD并将其与上一个进行比较。如果它们不同,则将该值放入堆栈中。然后,您将在配置文件中包含另一个名为cdb的函数,该函数将从堆栈中弹出最后一个项目并cd到它。
这听起来很有趣,所以我想出了一个解决方案。将所有这些代码放入您的个人资料(about_Profiles)。
[System.Collections.Stack]$GLOBAL:dirStack = @()
$GLOBAL:oldDir = ''
$GLOBAL:addToStack = $true
function prompt
{
Write-Host "PS $(get-location)>" -NoNewLine -foregroundcolor Magenta
$GLOBAL:nowPath = (Get-Location).Path
if(($nowPath -ne $oldDir) -AND $GLOBAL:addToStack){
$GLOBAL:dirStack.Push($oldDir)
$GLOBAL:oldDir = $nowPath
}
$GLOBAL:AddToStack = $true
return ' '
}
function BackOneDir{
$lastDir = $GLOBAL:dirStack.Pop()
$GLOBAL:addToStack = $false
cd $lastDir
}
Set-Alias bd BackOneDir
现在,您可以像平常一样使用cd,而bd将带您回到位置记录中的位置。
pushd
导航到新目录,则可以popd
返回到上一个目录。这适用于Bash,PowerShell甚至是旧版Windows命令行。