我需要运行位于另一个文件夹中的批处理文件,该文件夹必须从另一个批处理文件中调用。
每当我从第一个调用这个批处理文件时,让我们分别称它们为Batch_A和Batch_B,第二个尝试从第一个批处理文件的目录运行。
Batch_A需要call
或start
Batch_B,但Batch_B需要像我自己手动双击一样运行。
这是我在第一批结束时的目前所拥有的
start "A thing" "%output%\thing.bat" /b
答案 0 :(得分:2)
你看过push还是pop。
在调用第二个批处理文件之前,请输入“push”命令:
pushd%dynamicdirectory%
调用batchfileb.bat
POPD
答案 1 :(得分:0)
如果Batch_B被设计/编写为始终从它所在的目录运行 您也可以考虑修改Batch_B.bat
setlocal
cd /D %0\..
REM your original content
endlocal
在%0中存储批处理文件的路径。
诀窍是假设%0是一个目录然后更低一级 基于那个指令。 使用/ D也可以正确更改驱动器号。
cd命令不关心%0是否真的是一个目录。 实际上%d甚至不必存在(%0 \ dummy \ .. \ ..也可以)。
setlocal命令用于恢复工作目录 当Batch_B.bat完成时。
我注意到endlocal命令不是必需的 在这种情况下,因为它在Batch_B完成时被立即应用。