Ben Linux'lu bir adamım ama açık fikirli olmaya ve biraz Powershell öğrenmeye çalışıyorum. cd -
* Nix kabukları gibi, önceki bir dizine geri dönme yeteneğini özlüyorum . Powershell'de, önceki dizime dönmeme izin verecek bir benzer komut var mı?
Ben Linux'lu bir adamım ama açık fikirli olmaya ve biraz Powershell öğrenmeye çalışıyorum. cd -
* Nix kabukları gibi, önceki bir dizine geri dönme yeteneğini özlüyorum . Powershell'de, önceki dizime dönmeme izin verecek bir benzer komut var mı?
Yanıtlar:
Tam olarak farkında olduğum şekilde değil. Bir seçenek cd yerine pushd kullanmaktır. Sonra popd seni geri götürecek.
Ayrıca, profilinizi yeni bir bilgi istemi geldiğinde (temelde girdiğiniz her seferde) görünecek şekilde değiştirebilirsiniz. PWD'yi alır ve bunu öncekiyle karşılaştırırdı. Farklılarsa, bu değeri bir yığına koyun. Daha sonra profilinize cdb gibi bir şey eklersiniz, bu da en son öğeyi yığından çıkarır ve cd.
Kulağa eğlenceli geliyordu, ben de bir çözüm buldum . Tüm bu kodu profilinize ekleyin ( 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
Şimdi normal bir cd gibi cd yapabilirsiniz ve bd sizi konum geçmişinizdeki konuma geri götürür.
cd
için pushd
ve bd
için popd
P:
Hızlı ve kirli çözüm takma etmektir cd
ve bd
karşı pushd
ve popd
. Bir sınırlama cd -
tekrar tekrar eşdeğerini yapamazsınız .
Set-Alias -Name cd -Value pushd -Option AllScope
Set-Alias -Name bd -Value popd -Option AllScope
EBGreen'in harika senaryosunu değiştirdim, böylece sizi geçmişinizde tersine çevirmek yerinecd-
her zaman bir önceki dizine götüreceksiniz . Bu şekilde, cd-
birden çok kez kullanmak, iki dizin arasında geçiş yapacaktır - bu, cd -
unix kabukları için de geçerlidir.
$GLOBAL:previousDir = ''
$GLOBAL:currentDir = ''
function prompt
{
Write-Host "PS $(get-location)>" -NoNewLine -foregroundcolor Green
$GLOBAL:nowPath = (Get-Location).Path
if($nowPath -ne $GLOBAL:currentDir){
$GLOBAL:previousDir = $GLOBAL:currentDir
$GLOBAL:currentDir = $nowPath
}
return ' '
}
function BackOneDir{
cd $GLOBAL:previousDir
}
Set-Alias cd- BackOneDir
Oh ve ben istem rengini yeşile değiştirmek zorunda kaldık :)
pushd
Yeni bir dizine gitmek için kullanmak olsaydınızpopd
, öncekine geri dönebilirsiniz. Bu Bash, PowerShell ve hatta eski Windows komut satırında çalışır.