祝你好运+0
:)我确实在这个论坛和 stackoverflow 上搜索了大约 30 分钟,但没有找到答案。
Linux有以下命令:
pushd +0
要不就
pushd
毫无争论。
哪个掉期当前目录和 pushd 堆栈的顶部。
我在 powershell 中找不到等效项。当然,我可以编写一个脚本(如下)。
我读完了powershell 中关于、、的所有get-help
内容。也许我错过了。set-location
get-location
push-location
pop-location
我认为缺少的功能是既不push-location
采用pop-location
任何类型的索引。
Get-Location -Stack | Get-Member
表明堆栈TypeName: System.Management.Automation.PathInfoStack
不仅仅是一个数组。因此,它有一个.peek()
查看顶部的索引,但没有索引。可以:
(Get-Location -Stack).ToArray()[0]
(Get-Location -Stack).ToArray()[1]
访问各种索引,但仍然无法执行交换。
您不能在不更改该目录的情况下执行push-location
或。并且您不能对堆栈条目执行(除非使用上面的索引语法),这将设置,而不执行推送或弹出。ppo-location
set-location
那么有没有什么办法可以做到这一点?
或者必须编写脚本(函数/cmdlet)才能执行此操作?对于 Linux Shell 中内置的功能来说,这似乎很麻烦。
脚本原型演示可能是:
PS C:\> mkdir \tmp1
PS C:\> mkdir \tmp2
PS C:\> cd \tmp1
PS C:\tmp1> pushd \tmp2
PS C:\tmp2> pushd \
PS C:\> Get-Location -Stack
Path
----
C:\tmp2
C:\tmp1
PS C:\> # script beg
PS C:\> $prvloc = Get-Location
PS C:\> $newloc = Pop-Location -PassThru
PS C:\tmp2> cd $prvloc
PS C:\> Push-Location $newloc;
PS C:\tmp2> # script end
PS C:\tmp2> Get-Location -Stack
Path
----
C:\
C:\tmp1