如何将一个variables设置为Windows上父目录的path?

再次用命令行挣扎,我发现我可以将当​​前工作目录存储在variables中,如下所示:

SET current=%cd% 

我如何设置父项? SET parent=%..%不起作用,因为它回声%..%

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

 @echo off set current=%cd% echo %current% 

打印C:\a\b ,我想设置一个variablesparent以便它将打印C:\a而不更改当前的工作目录为..

这可能吗?

上移一个目录,记住当前,设置父级,然后弹出一个目录,回到你开始的地方

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

你也可以做这样的事情:

设定电流=%CD%
设置父=%CD%\ ..

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

编辑:请注意,到目前为止,包括我的这里,所有的解决方案将有问题,如果当前文件夹是一个驱动器的根目录。 没有一个干净而简单的方法,因为用户模式实际上没有驱动器的父级可见。

使用

 pushd targetFolder set current=%cd% popd 

pushd / popd维护一堆以前访问过的目录。