Windows 设置父项=%CD%\。。未按预期计算到上面的文件夹

Windows 设置父项=%CD%\。。未按预期计算到上面的文件夹,windows,batch-file,Windows,Batch File,在下面的批处理文件中,我得到了当前路径。。如何使其在“当前路径”上方打印一级 当前路径上方的一个级别没有变量。要获取父文件夹,只需将cd放回一个目录,将父变量设置为当前目录,如果需要,将cd放回原始目录。像这样: set current=%CD% cd.. set parent=%CD% cd %current% echo %parent% pause 从一级或更高级别的文件夹运行此操作 @echo off for %%a in ("%cd%") do echo "%%~dpa" pause

在下面的批处理文件中,我得到了当前路径。。如何使其在“当前路径”上方打印一级


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

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

从一级或更高级别的文件夹运行此操作

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

除了临时更改目录之外,没有什么好方法可以做到这一点

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

set current=%CD%
pushd ..
set parent=%CD%
popd
echo %parent%
这使用了
pushd
popd
命令,这很好


请注意,如果您在根目录(例如
C:
)上,这将导致parent均衡current,但旧脚本也会这样做

这将返回当前active directory父文件夹的完整路径

set current=%CD%
pushd ..
set parent=%CD%
popd
echo %parent%
for %%a in (..\) do set "parent=%%~fa"