如何将变量设置为Windows上父目录的路径?

Pet*_*háč 17 windows command-line batch-file

再次尝试使用命令行,我发现我可以将当​​前工作目录存储在一个变量中,如下所示:

SET current=%cd%
Run Code Online (Sandbox Code Playgroud)

我怎么设置父母呢?SET parent=%..%它不起作用,因为它回应%..%

基本上,C:\a\b\myscript.bat使用以下内容调用批处理脚本:

@echo off
set current=%cd%
echo %current%
Run Code Online (Sandbox Code Playgroud)

打印C:\a\b,我想设置一个变量,parent以便在C:\a不更改当前工作目录的情况下进行打印..

这可能吗?

Bin*_*ier 35

上移目录,记住当前,设置父目录,然后弹出目录,返回到您开始的位置

@echo off
set current=%cd%
pushd ..
set parent=%cd%
popd

echo current %current%
echo parent %parent%
Run Code Online (Sandbox Code Playgroud)


RBe*_*eig 8

你也可以这样做:

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

它不会为您提供父级的规范名称,但它应始终是父文件夹的有效路径.它也会比涉及pushd和popd的解决方案快一些,但这不是批处理文件中的主要考虑因素.

编辑:请注意,到目前为止,包括我的所有解决方案,如果当前文件夹是驱动器的根目录,将会出现问题.没有干净简单的方法,因为用户模式确实没有驱动器的父级.