Cmd 命令提示中的目录导航

Cmd 命令提示中的目录导航,cmd,batch-file,Cmd,Batch File,我正在尝试从另一个文件夹中的批处理文件运行一个文件夹中存在的批处理文件: 父文件夹“大”包含两个文件夹“批处理文件夹”和“中”。 BatchFolder包含一个名为Batch1的批处理文件。 “中”包含另一个名为“小”的文件夹。 Small包含一个名为Batch2的批处理文件,该文件需要运行Batch1。 命令提示符从Batch2的位置运行 因此,如何将文件夹向上导航到大文件夹,然后导航到BatchFolder 我一直在尝试实现这一点,但没有成功,例如Bacth2包含以下“call../Batc

我正在尝试从另一个文件夹中的批处理文件运行一个文件夹中存在的批处理文件:

父文件夹“大”包含两个文件夹“批处理文件夹”和“中”。 BatchFolder包含一个名为Batch1的批处理文件。 “中”包含另一个名为“小”的文件夹。 Small包含一个名为Batch2的批处理文件,该文件需要运行Batch1。 命令提示符从Batch2的位置运行

因此,如何将文件夹向上导航到大文件夹,然后导航到BatchFolder


我一直在尝试实现这一点,但没有成功,例如Bacth2包含以下“call../BatchFolder/Batch1.bat”

我不确定您是否真的需要导航到所需的文件夹(即将其设置为当前文件夹),或者您只需要使用相对路径表示法调用该文件夹中的批处理脚本。从我对这个词的理解来看,导航意味着前者,但你的最后一句话似乎表明你需要后者

首先,答案是:

call %~dp0%..\..\BatchFolder\Batch1.bat
接下来,它意味着什么
%~dp0%
%0
的一种变体:后者是此批处理文件的完整路径(即
Batch2.bat
),包括文件名,前者是此批处理文件夹的完整路径(包括尾部的
\

指向直接父文件夹。它重复了两次,因为我们需要访问
Batch2.bat
文件夹的“父级”,父级是
Big
。一旦我们指向
Big
,我们就可以对其中的文件/文件夹进行寻址,在这种情况下,我们需要的是
BatchFolder
,最终我们可以把
Batch1.bat
的名称放进去


无论当前文件夹是什么,这都有效。也就是说,如果我不清楚这一点,只需调用一个批处理文件,您就不会更改当前文件夹。为此,您必须使用
CD
命令。这将是导航(但我对这个术语的理解仍有待纠正)。

我不确定您是否真的需要导航到所需的文件夹(即,将其设置为当前文件夹),或者您只需要使用相对路径表示法调用该文件夹中的批处理脚本。从我对这个词的理解来看,导航意味着前者,但你的最后一句话似乎表明你需要后者

首先,答案是:

call %~dp0%..\..\BatchFolder\Batch1.bat
接下来,它意味着什么
%~dp0%
%0
的一种变体:后者是此批处理文件的完整路径(即
Batch2.bat
),包括文件名,前者是此批处理文件夹的完整路径(包括尾部的
\

指向直接父文件夹。它重复了两次,因为我们需要访问
Batch2.bat
文件夹的“父级”,父级是
Big
。一旦我们指向
Big
,我们就可以对其中的文件/文件夹进行寻址,在这种情况下,我们需要的是
BatchFolder
,最终我们可以把
Batch1.bat
的名称放进去

无论当前文件夹是什么,这都有效。也就是说,如果我不清楚这一点,只需调用一个批处理文件,您就不会更改当前文件夹。为此,您必须使用
CD
命令。这将是一种导航(但我对这个术语的理解仍有可能被纠正)