Kaz*_*ark 43 powershell history
我是一个 Linux 人,但我正在努力保持开放的态度并学习一些 Powershell。我想念cd -回到上一个目录的能力,比如在 *nix shell 中。Powershell 中是否有类似的命令——允许我返回到我以前的目录?
EBG*_*een 21
与我所知道的完全不同。一种选择是使用 pushd 而不是 cd。然后popd会带你回去。
您还可以更改您的个人资料,以便每当出现新提示时(基本上是在您按 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
Run Code Online (Sandbox Code Playgroud)
现在您可以像平常一样使用 cd,bd 将带您回到位置历史记录中的位置。
th1*_*ey3 16
只是试图cd -在Powershell Core 6.2.2和它的作品:)
cd - 带您回顾您的位置记录
cd + 带您浏览位置历史记录
Oli*_*gey 12
我对 cd +/- 的运气有所不同,尽管它应该可以工作。
pushd并且popd已经存在很长一段时间并且很好地完成工作,但我不确定它们是否在 Powershell 中得到正式支持 - 我刚刚发现它们实际上是别名Push-Location,Pop-Location因此是当前和受支持的,似乎是最好的方法去:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/push-location?view=powershell-7 https://docs.microsoft.com/en-us/powershell/module /microsoft.powershell.management/pop-location?view=powershell-7
之前建议使用别名来替换标准cd命令是一个好主意,但在脚本编写中,为了清楚起见,我只是使用真实的 cmdlet 名称。
有效的示例:
cd B:\MyFolder\MySubFolder\
Push-Location
Set-Location Env:
cd B:\
Pop-Location
Run Code Online (Sandbox Code Playgroud)
返回到 B:\MyFolder\MySubFolder\
不起作用的示例:
cd B:\MyFolder\MySubFolder\
Push-Location
Set-Location Env:
Pop-Location
Run Code Online (Sandbox Code Playgroud)
失败 - (需要将驱动器更改回推送的位置)
推送位置和弹出位置似乎是“LIFO”(后进先出)
| 归档时间: |
|
| 查看次数: |
35801 次 |
| 最近记录: |