调用另一个批处理文件的调用批处理文件失败

用户名

我有一个a.bat有效地看起来像这样的批处理文件

call some.bat

java -cp "saxon9he.jar" net.sf.saxon.Transform  abc.xml des.xsl > des.xml

call subfolder\other.bat

other.batinsubfolder实际上看起来像这样:

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)中,我在同一文件夹中调用另一个批处理文件,并在同一文件夹中调用一些xsl脚本,这些脚本将xml文件写入同一文件夹。在第一个批处理脚本(a.bat)中,我想调用subfolder\other.bat但是,当我这样做时,它无法调用yet_another_batch.batinsubfolder以及xsl脚本subfolder,也找不到saxon9he.jar。

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

维姆

将两行代码添加到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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

循环调用另一个批处理文件的批处理文件

如何在另一个批处理文件中调用一个批处理文件?

从另一个批处理文件调用一个批处理,并从外部批处理中设置内部批处理文件参数

仅当从另一个批处理文件调用批处理文件时,如何才能处理该批处理文件?

使批处理文件等待另一个批处理文件

调用批处理文件,它使用第二个目录作为工作目录来调用另一个批处理文件

批处理-如何关闭从另一个批处理文件启动的批处理文件

批处理文件在我直接执行时调用另一个批处理,但在调度时不调用

Windows 批处理文件以提升的权限启动另一个批处理

如何从另一个批处理文件在批处理文件中写入管道(|)?

为什么我不能重定向由另一个批处理调用的批处理文件运行的程序的标准输出/错误?

使用批处理文件复制文件名并附加另一个文件

如何从其他目录中的另一个批处理文件中的一个批处理文件中启动exe文件?

将截断的文件名传递到另一个批处理文件

批处理文件以将文件夹移动到另一个

如何使批处理文件移动另一个文件?

从另一个文件夹运行批处理文件

如何通过另一个批处理文件更新一个批处理文件中的值

如何写入一个批处理文件以告诉它写入另一个批处理文件

如何将变量从一个批处理文件传递到另一个批处理文件?

从另一个批处理文件启动一个批处理文件只会打开CMD

编写批处理文件:批处理将命令插入到另一个基于cmd的程序中

如何使用批处理制作另一个带有变量的批处理文件?

批处理文件:与另一个实例中的批处理脚本打开的Shell实例进行交互

仅当文件夹为空时,如何从第一个批处理文件中调用第二个批处理文件?

Windows批处理文件中的数字大于或小于另一个

获取另一个变量中的批处理文件变量的值

在批处理文件的for循环中有另一个if选项

无法在另一个批处理文件中回显自删除命令