我写了一个简单的 .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/