我正在尝试从另一个文件夹中的批处理文件运行一个文件夹中存在的批处理文件:
父文件夹Big包含2个文件夹BatchFolder和Medium。 BatchFolder包含一个名为Batch1的批处理文件。 Medium包含另一个名为Small的文件夹。 Small包含一个名为Batch2的批处理文件,需要运行Batch1。 命令提示符从Batch2
的位置运行因此,如何向上导航文件夹To Big,然后导航到BatchFolder?
我一直在努力实现这一目标,但没有成功,例如Bacth2包含以下“call ../ BatchFolder / Batch1.bat”
答案 0 :(得分:1)
我不确定您是否真的需要导航到所需的文件夹(即将其设置为当前文件夹),或者您只需要一种方法使用相对路径调用该文件夹中的批处理脚本符号。 导航,从我理解术语的方式来看,意味着前者,但你的最后一句似乎表明你需要后者。
首先,答案是:
call %~dp0%..\..\BatchFolder\Batch1.bat
接下来,这意味着什么。 %~dp0%
是%0
的变体:后者是此批处理文件的完整路径(即Batch2.bat
),包括文件名,前者是此批处理文件夹的完整路径(包括尾随\
)。
..
指向直接父文件夹。它重复两次,因为我们需要访问Batch2.bat
文件夹的“grand-parent”,而grand-parent是Big
。一旦我们指向Big
,我们就可以解决其中的文件/文件夹,在这种情况下我们需要BatchFolder
,最终我们可以将Batch1.bat
的名称。
无论当前文件夹是什么,这都有效。也就是说,如果我不清楚那个头,只需调用一个批处理文件,你还没有更改当前文件夹。您必须使用CD
命令。这将是导航(但我仍然愿意纠正我对这个术语的理解。)