我经常想要返回到我以前在cmd.exe中的目录,但是Windows没有Unix的“cd - ”功能。键入cd ../../ ..也是很多打字。
是否有更快的方法可以上升多个目录级别?
理想情况下,之后会回来吗?
答案 0 :(得分:1)
使用/ 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
等目录的别名(如上所示)可以迅速将您从一个位置带到另一个位置,很容易创建,并且如果您经常在命令行中工作,则可以提供帮助。
答案 1 :(得分:1)
在Windows CMD上,我习惯使用pushd
和popd
。在更改目录之前,我使用pushd .
将当前目录放在堆栈上,然后使用cd移动到其他位置。每次指定的目录进入堆栈时,您都可以根据需要随时运行pushd。然后,您可以将CD发送到您想要的任何目录或目录。运行CD的次数并不重要。准备返回时,我使用popd
返回堆栈顶部的任何目录。这适用于简单的用例,只要你记得在使用CD之前在堆栈上推送一个目录,它就很方便。
答案 2 :(得分:0)
您可以使用以下命令:
cd ..\ -> To go up one level
cd ..\..\ -> To go up two levels
注意cd
答案 3 :(得分:0)
步骤:
pushd .
(在堆栈中保留旧文件夹路径)cd ..\..
(移至您喜欢的文件夹)popd
(从堆栈中弹出。意思是,回到旧文件夹)