Навигация по каталогу в командной строке - PullRequest
1 голос
/ 20 февраля 2011

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

Родительская папка Big содержит 2 папки BatchFolder и Medium.BatchFolder содержит пакетный файл с именем Batch1.Medium содержит еще одну папку с именем Small.Small содержит пакетный файл с именем Batch2, который должен запускать Batch1.Командная строка запускается из папки Batch2

. Как мне перейти вверх по папкам в Big, а затем перейти в BatchFolder?

Я пытался сделать это для достижения этой цели.безуспешно, например, Bacth2, содержащий следующий вызов "./BatchFolder/Batch1.bat"

1 Ответ

1 голос
/ 21 февраля 2011

Я не уверен, действительно ли вам нужно перейти в нужную папку (т.е. установить ее в качестве текущей) или вам просто нужен способ вызова пакетного сценария в этой папке, используя относительный путь обозначение. Навигация от того, как я понимаю этот термин, означает первое, но ваше последнее предложение, кажется, показывает, что вам нужно второе.

Сначала ответ:

call %~dp0%..\..\BatchFolder\Batch1.bat

Далее, что это значит. %~dp0% - это вариант %0: последний - полный путь к этому пакетному файлу (т. Е. Batch2.bat), включая имя файла, а первый - полный путь к папке этого пакета (включая завершающий \ ).

.. указывает на ближайшую родительскую папку. Это повторяется дважды, потому что нам нужен доступ к «прародителю» папки Batch2.bat, а прародителю является Big. Как только мы указываем на Big, мы можем обращаться к файлам / папкам в нем, в этом случае нам нужно BatchFolder, и в итоге мы можем указать имя Batch1.bat.

Это работает независимо от текущей папки . То есть, в случае, если я не совсем понял, просто вызывая командный файл, вы еще не меняете текущую папку. Для этого вам придется использовать команду CD. Это было бы навигация (но я все еще открыт для исправления моего понимания этого термина).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...