Как получить путь к текущему пакетному заданию в MS-DOS? - PullRequest
0 голосов
/ 05 июля 2011

У меня есть партия foo.bar в каталоге d:\progs\.
В этом каталоге у меня есть файл jar с именем bar.jar.
Я добавил d:\progs\ в переменную окружения Path.

Теперь я делаю cd c:\anotherdir. В этом новом фильме я делаю foo -v. Но я получаю следующую ошибку: Unable to access jarfile bar.jar

Как я могу получить текущий путь foo.bar, поскольку% CD% возвращает c:\anotherdir?

Ответы [ 2 ]

2 голосов
/ 05 июля 2011

Фрагмент кода, который вы ищете: %~dp0.Это дает вам путь к текущему пакетному заданию .

. Это также имеет то преимущество, что позволяет запускать команду из любого места, тогда как захват %CD% в начале вашегоПакетный скрипт захватит каталог, в котором вы находились, когда запустил пакетный скрипт.(Однако если это то, что вы хотите сделать, это было бы предпочтительным решением, как предложено Ричардом .)

0 голосов
/ 05 июля 2011

Я добавил d: \ progs \ в переменную среды Path.

Это влияет только на запуск программ, но не помогает с аргументами (например, файлы данных и документы)передан в программу.

Как получить текущий путь к foo.bar, поскольку% CD% возвращает c: \ anotherdir?

Используйте %CD% для захвататекущая папка и, таким образом, создайте путь к файлу данных до смены каталога.

...