나는 Linux 사람이지만 열린 마음으로 Powershell을 배우려고합니다. cd -
* nix 쉘에서와 같이 이전 디렉토리 로 돌아가는 기능이 없습니다 . Powershell에 비슷한 명령이 있습니까?이 명령을 사용하면 이전 디렉토리로 돌아갈 수 있습니까?
나는 Linux 사람이지만 열린 마음으로 Powershell을 배우려고합니다. cd -
* nix 쉘에서와 같이 이전 디렉토리 로 돌아가는 기능이 없습니다 . Powershell에 비슷한 명령이 있습니까?이 명령을 사용하면 이전 디렉토리로 돌아갈 수 있습니까?
답변:
내가 아는 것과 똑같은 방식은 아닙니다. 한 가지 옵션은 cd 대신 push를 사용하는 것입니다. 그러면 팝이 당신을 다시 데려 갈 것입니다.
새 프롬프트가 나타날 때마다 (기본적으로 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는 위치 기록의 위치로 되돌아갑니다.
cd
에 pushd
와 bd
에 popd
P :
내가 수정 한 EBGreen의 위대한 스크립트를 그 때문에 cd-
항상 당신을 데려 갈 것이다 당신의 역사를 통해 반전 대신 이전 디렉토리 . 이 방법으로 cd-
여러 번 사용 하면 두 디렉토리 사이를 전환 할 수 있습니다. 이것은 cd -
유닉스 쉘에서하는 것입니다.
$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
아, 나는 프롬프트 색상을 녹색으로 변경해야했습니다 :)
pushd
새 디렉토리를 탐색하는 데 사용했다면popd
이전 디렉토리로 돌아갈 수 있습니다. 이것은 Bash, PowerShell 및 레거시 Windows 명령 행에서도 작동합니다.