再次用命令行挣扎,我发现我可以将当前工作目录存储在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维护一堆以前访问过的目录。