从不同文件夹的batch file执行命令

我有一个名为“MyApp”的父级文件夹内同一级别(文件夹1,文件夹2和文件夹3)3个文件夹和我的.bat文件在文件夹1中。在文件夹2我有我的Angular应用程序文件和节点服务器。 有没有一种方法,我可以写在我的batch file执行一些命令(“npm开始”)npm模块在文件夹2中。像这样

echo "Starting App Module" cd "\Folder 2" start "" npm start 

我不想给这样的绝对path(下面)工作正常。

 echo "Starting App Module" CD D:\MyApp\Folder 2 start ""npm start 

请让我知道你的想法。

有很多可能的解决scheme。 我认为,为你的任务最好的是:

 echo "Starting App Module" start "" "%~dp0..\Folder 2\npm.exe" start 

%~dp0 …引用驱动器和以反斜杠结尾的batch file的path。 在命令提示符窗口中运行call /? 并阅读所有的帮助页面输出的细节。

现在,batch file的起始位置上的当前目录是哪个目录并不重要。 npm.exe是以与batch file的path相关的path启动的,与当前为batch file设置的工作目录无关。