如何在 windows 命令提示符中 return 到上一个目录?

How can I return to the previous directory in windows command prompt?

我经常想 return 到我刚刚在 cmd.exe 中的上一个目录,但是 windows 没有 Unix 的 "cd -" 功能。另外输入 cd ../../.. 是很多输入。

有没有更快捷的方式来提升多个目录级别?

然后最好 return 回来?

运行 cmd.exe 使用 /k 开关和启动批处理文件调用 doskey 以使用 cd 命令的增强版本。

这是一个简单的批处理文件,用于将目录更改为传入的第一个参数 (%1),并通过调用 pushd %1 记住初始目录。

md_autoruns.cmd:

@echo off
cd %1
pushd %1
title aliases active
cls
%SystemRoot%\System32\doskey.exe /macrofile=c:\tools\aliases

我们还需要一个小的辅助批处理文件来记住目录更改并忽略对同一目录的更改:

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%"
)

还有一个小别名文件,显示如何使它全部正常工作:

别名:

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 -,您将回到开始的地方。

跳转到 wktools 等目录的别名(如上所示)可快速带您从一个位置到另一个位置,创建起来很容易,如果您在命令行中工作,这真的很有帮助经常。

在 Windows CMD 上,我习惯了使用 pushdpopd。在更改目录之前,我使用 pushd . 将当前目录放入堆栈,然后我使用 cd 移动到其他地方。您可以 运行 pushd 任意多次,每次指定的目录进入堆栈。然后,您可以 CD 到您想要的任何一个或多个目录。不管你运行CD多少次。当准备好 return 时,我使用 popd 到 return 到堆栈顶部的任何目录。这适用于简单的用例并且很方便,只要你记得在使用 CD 之前将目录压入堆栈即可。

您可以使用命令:

cd ..\       -> To go up one level
cd ..\..\    -> To go up two levels

注意cd

后面的space

步骤:

  1. pushd .(将旧文件夹路径保留在堆栈中)
  2. cd ..\..(移动到你喜欢的文件夹)
  3. popd(从堆栈中弹出。意思是,回到旧文件夹)

这在 powershell 中对我有用

cd ..