Как заставить программы, запускаемые из BAT-файла, запускаться в своем собственном каталоге? - PullRequest
3 голосов
/ 21 ноября 2011

Я написал простой скрипт .BAT, я запланировал его на сервере Windows для целей резервного копирования.Проблема в том, что оно запускает приложение, но вывод не идет в папку, в которой он находится, он куда-то уходит (я не знаю, где).Выходные данные - это файл журнала и файл резервной копии.

Вот сценарий:

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

Ответы [ 3 ]

7 голосов
/ 21 ноября 2011

У вас есть два варианта. Во-первых, вы можете установить текущий каталог для запланированной задачи так же, как вы можете указать исполняемый файл. Это, конечно, еще одна вещь, о которой вам нужно беспокоиться, если местоположение когда-либо изменится.

Другой способ уже показан в вашем скрипте. %~dp0 в спецификации jarfile - это диск и путь нулевого аргумента (имя пакетного файла), поэтому он ищет jarfile в том же каталоге, что и ваш пакетный файл.

Следовательно, вы можете просто положить:

cd /d %~dp0

в ваш командный файл, прежде чем пытаться запустить вашу Java-программу, и он будет в правильном каталоге, даже если вы решите переместить его в другое место.

1 голос
/ 21 ноября 2011

Добавьте cd /d %~dp0, чтобы установить правильный рабочий каталог для расположения файла .bat.

1 голос
/ 21 ноября 2011

Вы можете просто cd в папку перед запуском реального приложения:

cd\
cd "%JAVA_HOME%"\bin
java -jar "%~dp0jwbackup.jar"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...