Windows 如何让从BAT文件运行的程序在它们自己的目录中运行?
我编写了一个简单的.BAT脚本,我在windows server中计划了它以用于备份。问题是它运行一个应用程序,但输出不在它所在的文件夹中,而是在某个地方(我不知道在哪里)。输出是一个日志文件和一个备份文件 以下是脚本:Windows 如何让从BAT文件运行的程序在它们自己的目录中运行?,windows,batch-file,scheduled-tasks,Windows,Batch File,Scheduled Tasks,我编写了一个简单的.BAT脚本,我在windows server中计划了它以用于备份。问题是它运行一个应用程序,但输出不在它所在的文件夹中,而是在某个地方(我不知道在哪里)。输出是一个日志文件和一个备份文件 以下是脚本: "%JAVA_HOME%"\bin\java -jar "%~dp0jwbackup.jar" 在运行实际应用程序之前,您只需将cd放入文件夹即可: cd\ cd "%JAVA_HOME%"\bin java -jar "%~dp0jwbackup.jar" 你有两个选择。
"%JAVA_HOME%"\bin\java -jar "%~dp0jwbackup.jar"
在运行实际应用程序之前,您只需将
cd
放入文件夹即可:
cd\
cd "%JAVA_HOME%"\bin
java -jar "%~dp0jwbackup.jar"
你有两个选择。第一种方法是,可以使用与指定可执行文件相同的方法设置计划任务的当前目录。当然,如果位置发生变化,这是一件额外需要担心的事情 另一种方式已显示在脚本中。jarfile规范中的
%~dp0
是参数0(批处理文件名)的驱动器和路径,因此它会在与批处理文件相同的目录中查找jarfile
因此,你可以把:
cd /d %~dp0
在尝试运行Java程序之前,将其放入命令文件中,即使您决定将其移动到其他地方,它也将位于正确的目录中。添加
cd/d%~dp0
将当前工作目录设置为.bat文件的位置。您可能不希望位于Java bin目录中,相反,我认为要求与批处理文件位于同一目录中。但是理论是正确的,您只需更改cd
命令来选择不同的位置。我对Java一无所知,因此我无法判断将输出文件放入bin
目录是否是一个好主意。他没有在问题中明确说明是希望将输出放在批处理文件目录还是bin
目录中(我理解后者)。如果他想要批处理文件目录,那么你的答案是更好的。我说这个命令在过去是不需要的,对吗?@puropon:start in计划功能被破坏了。