【发布时间】:2012-01-02 22:25:45
【问题描述】:
我编写了一个简单的 .BAT 脚本,我将它安排在 Windows 服务器中以进行备份。问题是它运行一个应用程序,但输出没有进入它所在的文件夹,它进入某个地方(我不知道在哪里)。输出是一个日志文件和一个备份文件。
这是脚本:
"%JAVA_HOME%"\bin\java -jar "%~dp0jwbackup.jar"
【问题讨论】:
标签: windows batch-file scheduled-tasks
我编写了一个简单的 .BAT 脚本,我将它安排在 Windows 服务器中以进行备份。问题是它运行一个应用程序,但输出没有进入它所在的文件夹,它进入某个地方(我不知道在哪里)。输出是一个日志文件和一个备份文件。
这是脚本:
"%JAVA_HOME%"\bin\java -jar "%~dp0jwbackup.jar"
【问题讨论】:
标签: windows batch-file scheduled-tasks
你有两个选择。第一个是您可以像指定可执行文件一样设置计划任务的当前目录。当然,如果位置发生变化,您需要额外担心这一点。
另一种方式已在您的脚本中显示。 jarfile 规范中的 %~dp0 是参数零(批处理文件名)的驱动器和路径,因此它会在与批处理文件相同的目录中查找 jarfile。
因此你可以输入:
cd /d %~dp0
在尝试运行 Java 程序之前将其放入命令文件中,即使您决定将其移动到其他位置,它也会位于正确的目录中。
【讨论】:
您可以在运行实际应用程序之前将cd 放入该文件夹:
cd\
cd "%JAVA_HOME%"\bin
java -jar "%~dp0jwbackup.jar"
【讨论】:
cd命令来选择不同的位置。
bin 目录中是否是个好主意。如果他想要批处理文件目录或bin 目录中的输出(我理解后者),他没有在他的问题中明确说明。如果他想要批处理文件目录,那么你的答案是更好的。
添加cd /d %~dp0将当前工作目录设置为.bat文件所在的位置。
【讨论】: