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

时间:2011-11-21 12:06:00

标签: windows batch-file scheduled-tasks

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

这是脚本:

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

3 个答案:

答案 0 :(得分:7)

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

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

因此你可以放:

cd /d %~dp0

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

答案 1 :(得分:1)

在运行实际应用程序之前,您可以cd进入该文件夹:

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

答案 2 :(得分:1)

添加cd /d %~dp0以将当前工作目录设置为.bat文件的位置。