我经常希望能够返回cmd.exe中上一个目录,但Windows没有类似Unix的“cd -”功能。而且输入cd ../../..需要很多敲击。
有没有更快捷地上几个目录级别的方法?
并且最好之后能返回来吗?
我经常希望能够返回cmd.exe中上一个目录,但Windows没有类似Unix的“cd -”功能。而且输入cd ../../..需要很多敲击。
有没有更快捷地上几个目录级别的方法?
并且最好之后能返回来吗?
步骤:
pushd .
(将旧文件夹路径推入堆栈中)cd ..\..
(移动到您想要的文件夹)popd
(从堆栈中弹出。即返回到旧文件夹)这个方法对我在powershell中有效。
cd ..
C:\Windows
的命令是cd C:\Windows
。 - undefinedpushd
和popd
。在更改目录之前,我使用pushd .
将当前目录放入堆栈中,然后使用cd移动到其他位置。您可以随时运行pushd,每次指定的目录都会进入堆栈。然后,您可以CD到任何您想要的目录,无论是一个还是多个。运行CD的次数不重要。当准备返回时,我使用popd
返回到堆栈顶部的目录。这适用于简单的用例,并且很方便,只要您记得在使用CD之前将目录推送到堆栈上。@echo off
cd %1
pushd %1
title aliases active
cls
%SystemRoot%\System32\doskey.exe /macrofile=c:\tools\aliases
我们还需要一个小助手批处理文件来记住目录更改并忽略对同一目录的更改:
@echo off
if '%*'=='' cd & exit /b
if '%*'=='-' (
cd /d %OLDPWD%
set OLDPWD="%cd%"
) else (
cd /d %*
if not errorlevel 1 set OLDPWD="%cd%"
)
还有一个小的别名文件,展示了如何使它们都能正常工作:
cd=C:\tools\mycd.bat $*
cd\=c:\tools\mycd.bat ..
A:=c:\tools\mycd.bat A:
B:=c:\tools\mycd.bat B:
C:=c:\tools\mycd.bat C:
...
Z:=c:\tools\mycd.bat Z:
.=cd
..=c:\tools\mycd.bat ..
...=c:\tools\mycd.bat ..\..
....=c:\tools\mycd.bat ..\..\..
.....=c:\tools\mycd.bat ..\..\..\..
......=c:\tools\mycd.bat ..\..\..\..\..
.......=c:\tools\mycd.bat ..\..\..\..\..\..
........=c:\tools\mycd.bat ..\..\..\..\..\..\..
.........=c:\tools\mycd.bat ..\..\..\..\..\..\..\..
tools=c:\tools\mycd.bat C:\tools
wk=c:\tools\mycd.bat %WORKSPACE%
现在你可以通过输入 ..
来返回上一级目录。
如果想要返回更多级别,每增加一个级别就再加一个 .
。
当你想要返回到之前的目录时,输入 cd -
即可回到原来的位置。
通过创建像 wk
或 tools
这样的快捷方式,能够快速跳转到不同的目录,这些快捷方式易于创建,在频繁使用命令行时非常有用。
您可以使用以下命令:
cd ..\ -> To go up one level
cd ..\..\ -> To go up two levels
cd
后面的空格。