我经常想在cmd.exe中回到我刚才所在的上一个目录,但是windows没有Unix的“cd -”功能。输入 cd ../../.. 也需要大量输入。
有没有更快的方法来提升几个目录级别?
理想情况下之后返回?
我经常想在cmd.exe中回到我刚才所在的上一个目录,但是windows没有Unix的“cd -”功能。输入 cd ../../.. 也需要大量输入。
有没有更快的方法来提升几个目录级别?
理想情况下之后返回?
在 Windows CMD 上,我习惯使用pushd
and popd
. 在更改目录之前,我使用pushd .
将当前目录放在堆栈上,然后使用 cd 移动到其他位置。每次指定的目录进入堆栈时,您可以随意运行 pushd。然后,您可以 CD 到您想要的任何目录或目录。运行 CD 多少次都没有关系。当准备好返回时,我使用popd
返回到堆栈顶部的任何目录。这适用于简单的用例并且很方便,只要您记得在使用 CD 之前将目录压入堆栈即可。
脚步:
pushd .
(将旧文件夹路径保留在堆栈上)cd ..\..
(移动到你喜欢的文件夹)popd
(从堆栈中弹出它。意思是,回到旧文件夹)使用 /k 开关和启动批处理文件运行 cmd.exe,该批处理文件调用 doskey 以使用 cd 命令的增强版本。
这是一个简单的批处理文件,用于将目录更改为传入的第一个参数 (%1),并通过调用 pushd %1 来记住初始目录。
@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