调用batch file调用另一个batch file失败

我有一个batch filea.bat ,看起来像这样:

 call some.bat java -cp "saxon9he.jar" net.sf.saxon.Transform abc.xml des.xsl > des.xml call subfolder\other.bat 

subfolderother.bat看起来像这样:

 call yet_another_batch.bat java -cp "../saxon9he.jar" net.sf.saxon.Transform any.xml try.xsl > try.xml java -cp "../saxon9he.jar" net.sf.saxon.Transform ../some.xml test.xsl 

因此,在第一个文件( a.bat )中,我调用同一个文件夹中的另一个batch file以及将xml文件写入同一文件夹的同一个文件夹中的一些xsl脚本。 从第一批脚本( a.bat )我想调用subfolder\other.bat 。 但是,当我这样做,它不能调用subfolderyet_another_batch.batsubfolder的xsl脚本,它不会findsaxon9he.jar。

什么是正确的方法来做到这一点? 是否必须将文件夹名称添加到subfolder\other.bat引用的所有文件? 似乎有点麻烦。 我在Windows 7上,如果这改变了什么。

Solutions Collecting From Web of "调用batch file调用另一个batch file失败"

像这样添加两行代码到other.bat:

 pushd "%~dp0" call yet_another_batch.bat java -cp "../saxon9he.jar" net.sf.saxon.Transform any.xml try.xsl > try.xml java -cp "../saxon9he.jar" net.sf.saxon.Transform ../some.xml test.xsl popd 

使用pushd ,other.bat将从它自己的文件夹执行命令。 popd将其设置回来,以便在a.bat返回时不会更改目录