set parent =%CD%\ ..并不按预期评估上面的文件夹

时间:2014-09-15 19:59:35

标签: windows batch-file

在下面的批处理文件中,我获得当前路径..如何让它在上面打印一个级别"当前路径" ?

set current=%CD%
set parent=%CD%\..
echo %parent%

4 个答案:

答案 0 :(得分:1)

除了暂时更改目录外,没有其他方法可以做到这一点。

幸运的是,有一种简单的方法可以返回目录然后再​​次切换:

set current=%CD%
pushd ..
set parent=%CD%
popd
echo %parent%

这使用pushdpopd命令,这很好。

请注意,如果您位于根目录(EG C:),这将导致父级等于当前,但旧脚本也是如此。

答案 1 :(得分:0)

当前路径上方的某个级别没有变量。要获取父文件夹,只需cd回一个目录,将父变量设置为当前目录,如果需要,cd回原始目录。像这样:

set current=%CD%
cd..
set parent=%CD%
cd %current%
echo %parent%
pause

答案 2 :(得分:0)

从第一级或更高级别的文件夹中运行。

@echo off
for %%a in ("%cd%") do echo "%%~dpa"
pause

答案 3 :(得分:0)

这应该返回当前活动目录

的父文件夹的完整路径
for %%a in (..\) do set "parent=%%~fa"