windows - 如何让从 BAT 文件运行的程序在它们自己的目录中运行?

标签 windows batch-file scheduled-tasks

我写了一个简单的 .BAT 脚本,我将它安排在 Windows 服务器中用于备份目的。问题是它运行一个应用程序,但输出不在它所在的文件夹中,而是在某个地方(我不知道在哪里)。输出是一个日志文件和一个备份文件。

这是脚本:

"%JAVA_HOME%"\bin\java -jar "%~dp0jwbackup.jar"

最佳答案

你有两个选择。首先是您可以像指定可执行文件一样为计划任务设置当前目录。当然,如果位置发生变化,这是您需要担心的额外事情。

另一种方式已显示在您的脚本中。 jarfile 规范中的 %~dp0 是参数零(批处理文件名)的驱动器和路径,因此它会在与批处理文件相同的目录中查找 jarfile。

因此你可以把:

cd /d %~dp0

在尝试运行您的 Java 程序之前进入您的命令文件,它将位于正确的目录中,即使您决定将它移动到其他地方也是如此。

关于windows - 如何让从 BAT 文件运行的程序在它们自己的目录中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8211517/

相关文章:

windows - Kibana 无法连接到 docker 上的 Elasticsearch

windows - 在调用 Main() 之前 Windows 做了什么?

windows - 在批处理文件中使用不同驱动单元的问题

windows - 有关在Windows应用程序中可能替换批处理文件的问题?

windows - 如何从批处理文件中获取刚启动的进程的 PID?

java - 如何获取预定事件与 JavaFX GUI 交互

Windows 8.1 低功耗蓝牙行为

c - Windows 上 C/GTK 应用程序的简单更新机制

c# - 为 schtasks.exe 指定日期参数的语言独立方式

ruby-on-rails - 使用 Clockwork 的计划作业和自定义时钟进程