Windows 명령 프롬프트에서 이전 디렉토리로 이동


39

Windows 명령 프롬프트에서 이전 디렉토리를 탐색하는 명령 / 도구가 있습니까?

리눅스에서는 보통

cd -

이전 디렉토리 탐색 용.

답변:


27

예를 들어 다음을 저장하십시오. mycd.bat당신의 길 어딘가에 :

@echo off
if '%*'=='' cd & exit /b
if '%*'=='-' (
    cd /d %OLDPWD%
    set OLDPWD=%cd%
) else (
    cd /d %*
    if not errorlevel 1 set OLDPWD=%cd%
)

그런 다음 항상 디렉토리와 드라이브를 변경 하는 mycd대신 사용하십시오 cd.

또는 doskey매크로를 사용하십시오 .

C:\>doskey cd=mycd $*

단주의해야 할 점은 당신이 사이의 공간을 생략하는 경우입니다 cd그리고 ..\, 당신의 내장 버전을 얻을 것이다 cd되지 않은 doskey매크로를 ... 그리고 당신은 여전히 사용하지 기억해야한다 C:, D:변화 드라이브 등.


작동하지 않아야하는 것처럼 보이지만 작동합니다. OLDPWD가 올바르게 설정되었습니다.
휴 알렌

2
+1 훌륭합니다. 작동합니다! 그러나 mycd (또는 whtevr)를 사용하는 것은 고통 스럽습니다
ukanth

\ mycd.bat \ DOSKEY C : = C : \ mycd.bat C @HughAllen는 CD의 도스 매크로 \ 및 CD ..의 도스 CD \ CD = \ 또는 CD의 도스 \ = C 수
barlop

이 박쥐는 c : \ blah.bat % USERPROFILE %에 대해 실패합니다 (따라서 cd 또는 cdd % USERPROFILE %는 실패합니다). 수정하려면 작은 따옴표를 큰 따옴표로 변경하십시오.
barlop

39

푸시 및 팝을 사용할 수 있습니다.

C : \ WINDOWS> pushd \
C : \> popd
C : \ WINDOWS>

Thx John, 그러나 이것은 내가 찾고있는 것이 아닙니다.
ukanth

2
배치 스크립트에 원하는 것입니다. 감사합니다. 심지어 \ d 스위치 없이도 드라이브를 변경합니다
Deebster

2
경고 와 함께 pushd/popd당신은 오류의 가능성을 배려해야한다 . 스크립트에서 pushd존재하지 않는 디렉토리는 스택에서 끝나지 않지만 popd한 레벨을 종료 할 때 : 변수가 올바르게 채워지지 않음, missprint, 잘못된 드라이브 ... 다른 디렉토리에 있다고 생각합니다 파일 / 디렉토리를 삭제할 때와 같은 심각한 문제가있는 것으로부터. 재난 (리눅스 구문) : cd $HOME; mkdir A; pushd A; mkdir B; pushd D; do stuff (in A, you believe in B); popd; rm -rf * 당신은 A를 믿지만 너무 늦습니다. 모든 홈 디렉토리가 사라졌습니다.
Hastur

4

배치 파일을 실행하는 경우 사용할 수 있습니다

  cd /D  %~dp0

배치 파일이 실행 된 원래 경로로 되돌아갑니다.


4

bash의 정확한 동작을 원한다면 bash를 사용하지 않는 이유는 무엇입니까? 나는 한 Cygwin에서 설치하고 아주 좋은 것입니다. 유닉스 도구를 고수하지는 않습니다. 모든 실행 파일을 행복하게 호출합니다. 들어 cmd.exe내장 매크로는 별칭을 만들 수 있습니다 :

hugh@comp07 ~/testdir                             
$ alias cm='cmd /c'                               

hugh@comp07 ~/testdir                             
$ cm dir                                          
 Volume in drive C has no label.                  
 Volume Serial Number is AC2A-8378                

 Directory of C:\cygwin\home\hugh\testdir         

18/05/2010  02:02 PM    <DIR>          .          
18/05/2010  02:02 PM    <DIR>          ..         
               0 File(s)              0 bytes     
               2 Dir(s)   1,365,155,840 bytes free

hugh@comp07 ~/testdir                             
$ 

3

Take Command Console LE 라는 cmd추가 기능을 갖춘 프리웨어 복제품이 있습니다 .cd -

대체 텍스트


이것은 작동하지 않습니다
ukanth

2
@TiNS : OK 방금 시도해 보았습니다. 당신을 위해 무엇을 했습니까?
휴 알렌

나는 콘솔로 시도했다 (메인 윈도우에서)
ukanth

1
@TiNS : 내가 한 일에 대해 잘 모르겠지만이 스크린 샷이 도움이 될까요? (답변 업데이트)
휴 알렌

1

목표가 무엇인지에 따라 'cmd'를 수행하여 새 cmd 세션을 시작하고 디렉토리를 이동 한 다음 원하는 것을 수행 할 수 있습니다. 새 세션을 시작했습니다.



0

내가하는 일은

rem capture the path of the initial dir
set RET_DIR=%CD%
rem do stuff...
rem and then return to the initial dir
cd %RET_DIR%
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.