如何在命令行中获取当前目录的父目录/上层目录的完整路径

时间:2017-01-20 03:47:27

标签: windows batch-file cmd

如下图所示,我有一个名为' Current Path.bat'的批处理文件。存储在&C; \ A \ B \'中。

C:\A\B\Current Path.bat

我想要做的是输出当前目录的父目录/上层目录的完整路径(即存储/执行批处理文件的位置)。

这种情况下的预期结果应该是:

C:\A\

目前我已经找到了解决这个问题的办法,但它并不完美。我想知道是否有更好的解决方案。

我现在的解决方法:

@echo off 
set current_path=%cd%
echo Current Path: %current_path% 
cd ..
set upper_path= %cd%
echo Upper Path: %upper_path%

结果如下:

C:\>cd a
C:\A>cd b
C:\A\B>"Current Path.bat"
Current Path: C:\A\B
Upper Path:  C:\A

The result of my work-around

1 个答案:

答案 0 :(得分:4)

你的方法没有错;避免更改您可以执行的当前目录,例如

pushd ..
set upper_path=%CD%
popd

如果您想避免更改目录,即使是瞬间,您也可以使用for

for %%x in ("%CD%") do set upper_path=%%~dpx

您可以选择哪两个更具可读性。