2016-11-10 2 views
0

мне нужно открыть файл с помощью пакетного файла, как это:Открыть файл с командным файлом, а затем использовать файл в классе Java

(правой кнопкой мыши) file.txt> «Открыть с помощью» file.bat

то мне нужно, чтобы получить расположение file.txt и установить его в переменной пути как это:

set path = <file.txt path> 
java test.class path 

Как я могу установить путь к месту file.txt без жесткого кодирования в путь (я не всегда буду знать имя файла или его местоположение)

+0

не уверен, что [это] (http://stackoverflow.com/questions/28190126/how-can-i-embed-java-code-into-batch-scriptis-it-possible-to-create-java- летучая мышь) поможет вам, но вы можете взглянуть. – npocmaka

+3

Пожалуйста, не используйте переменную named path. Это уже экологическая переменная, используемая системой. Независимо от файла, передаваемого в пакетный файл на консоли, перетаскивания или щелчка правой кнопкой мыши sendto, весь путь к файлу отправляется в пакетный файл и становится аргументом для командного файла. 'set fpath =% ~ dp1' – Squashman

+1

Вы можете использовать запись [sendTo entry] (http://stackoverflow.com/questions/6852833/running-a-batch-script-by-right-clicking-any-file), посмотреть Вот – LotPings

ответ

0

Squashman дал в своем комментарии почти всю информацию, необходимую для этой задачи кодирования пакетного файла.

Во-первых, не добавляйте пробелы вокруг знака равенства, назначая строковое значение переменной окружения. См. Ответ на Why is no string output with 'echo %var%' after using 'set var = text' on command line? для подробного объяснения.

Во-вторых, не используйте имена переменных среды, которые уже предопределены Windows, например PATH, что является чрезвычайно важной предопределенной переменной среды. Откройте окно командной строки и запустите set, чтобы получить все переменные среды, предопределенные для текущей учетной записи пользователя. Подробности об этих переменных можно найти в статье Википедии о Windows Environment Variables. Использование path в качестве имени переменной среды здесь определенно в сообщении об ошибке в следующей строке, потому что java.* с расширением файла, определенным в переменной окружения PATHEXT, не может быть найден в текущем каталоге или в любом каталоге, указанном в переменной окружения PATH.

В-третьих, проводник Windows передает файлы, выбранные в начальный процесс, с использованием . Отправить на с полным именем файла (путь + имя файла + расширение файла), заключенное в двойные кавычки. Запустите в окне командной строки call /?, чтобы получить справки о том, как ссылаться на строку аргумента командного файла.

Так все, что вам может понадобиться в вашем пакетном файле:

java.exe test.class "%~dp1" 

Если вы хотите увидеть, как пакетный файл запускается Windows Explorer, поместить в верхней части пакетного файла следующие две команды:

@echo %0 %* 
@pause 

Первая строка, выводимая командным файлом, показывает, как Windows Explorer запустил командный файл с помощью командного интерпретатора cmd.exe.

Смежные вопросы