我写了一个简单的.BAT脚本,我在Windows服务器上安排它进行备份。问题是它运行一个应用程序,但输出不会进入它所在的文件夹,它会在某个地方(我不知道在哪里)。输出是日志文件和备份文件。
这是脚本:
"%JAVA_HOME%"\bin\java -jar "%~dp0jwbackup.jar"
答案 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文件的位置。