如何返回到 Windows 命令提示符中的上一个目录?

ggb*_*667 7 command-line cmd doskey

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

有没有更快的方法来提升几个目录级别?

理想情况下返回之后?

Mon*_*nir 20

脚步:

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


NEB*_*BEZ 10

这在powershell中对我有用

cd ..
Run Code Online (Sandbox Code Playgroud)

  • 此命令移动到父目录。OP 正在寻求一种方法来移动到“上一个”目录,无论其在层次结构中的位置如何。 (7认同)
  • `cd C:\Windows`、`cd C:\Users`、`cd ..` 将您留在 `C:` - OP 要求输入一个命令,将您带回 `C:\Windows` (2认同)

mao*_*mao 9

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


ggb*_*667 6

使用 /k 开关和启动批处理文件运行 cmd.exe,该批处理文件调用 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
Run Code Online (Sandbox Code Playgroud)

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

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%"
)
Run Code Online (Sandbox Code Playgroud)

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

别名:

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%
Run Code Online (Sandbox Code Playgroud)

现在您可以通过输入上一级目录..

.为您想要升级的每个级别添加另一个。

当您想返回时,只需键入cd -即可返回起点。

用于跳转到类似wk或 之类的目录tools(如上所示)的别名可以快速将您从一个位置带到另一个位置,很容易创建,并且如果您经常在命令行中工作,那么它确实很有帮助。