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

got*_*ch4 3 windows batch-file scheduled-tasks

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

这是脚本:

"%JAVA_HOME%"\bin\java -jar "%~dp0jwbackup.jar"
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 7

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

另一种方式已经在您的脚本中显示.在%~dp0你的jar文件规范是驱动器和参数为零(批处理文件名)的路径,所以它看起来在相同的目录中的批处理文件的jar文件.

因此你可以把:

cd /d %~dp0
Run Code Online (Sandbox Code Playgroud)

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