加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows – 从不同目录中的另一个批处理文件调用批处理文件 –

发布时间:2020-12-14 04:35:26 所属栏目:Windows 来源:网络整理
导读:我正在使用installshield,并有一组批处理文件,我想作为安装过程的一部分运行.而不是从installshield执行每个批处理文件,我想创建一个执行所有批处理文件的批处理文件. 我的问题是,调用批处理文件从其他目录中放置两个目录.当批处理文件尝试调用他人,因为找不
我正在使用installshield,并有一组批处理文件,我想作为安装过程的一部分运行.而不是从installshield执行每个批处理文件,我想创建一个执行所有批处理文件的批处理文件.

我的问题是,调用批处理文件从其他目录中放置两个目录.当批处理文件尝试调用他人,因为找不到他们需要的资源时,它们无法运行.看来,当他们从批处理文件执行两个目录时,由于某些原因使用调用批处理文件的相对路径.我的假设是否正确?

我正在调用的一个批处理文件是一个批处理文件,用于为h2数据库添加星号,调用如下所示:

call h2binh2.bat

如果我在命令提示符下转到/ h2 / bin目录,h2.bat运行正常,但是一旦我从调用批处理文件中运行它,这是我得到的错误.

Error: Could not find or load main class org.h2.tools.Console

如何在不使用调用批处理文件路径的情况下从另一个调用一个批处理文件?

说明

It seems that when they are executed from the batch file two
directories up they are for some reason using the relative path of the
calling batch file. Is my assumption correct?

是的,你的假设是正确的.调用批处理文件不会更改当前工作目录.将找到主批处理文件,因为您提供了正确的相对路径,但从目前工作目录的角度而言,不会从包含主批处理文件的目录中看到所有其他相对路径.

%?dp0是你的朋友,它产生包含该字符序列的批处理文件的驱动器盘符和路径.使用它作为相对路径的基础,您的批处理文件将工作,无论谁从哪里调用它们.

例:

虚拟的h2.bat不行:

@echo off
h2.exe start

工作h2.bat:

@echo off
"%~dp0h2.exe" start

有关%?dp0的更多说明,请参见What does %~dp0 mean,and how does it work?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读