Я не уверен, действительно ли вам нужно перейти в нужную папку (т.е. установить ее в качестве текущей) или вам просто нужен способ вызова пакетного сценария в этой папке, используя относительный путь обозначение. Навигация от того, как я понимаю этот термин, означает первое, но ваше последнее предложение, кажется, показывает, что вам нужно второе.
Сначала ответ:
call %~dp0%..\..\BatchFolder\Batch1.bat
Далее, что это значит. %~dp0%
- это вариант %0
: последний - полный путь к этому пакетному файлу (т. Е. Batch2.bat
), включая имя файла, а первый - полный путь к папке этого пакета (включая завершающий \
).
..
указывает на ближайшую родительскую папку. Это повторяется дважды, потому что нам нужен доступ к «прародителю» папки Batch2.bat
, а прародителю является Big
. Как только мы указываем на Big
, мы можем обращаться к файлам / папкам в нем, в этом случае нам нужно BatchFolder
, и в итоге мы можем указать имя Batch1.bat
.
Это работает независимо от текущей папки . То есть, в случае, если я не совсем понял, просто вызывая командный файл, вы еще не меняете текущую папку. Для этого вам придется использовать команду CD
. Это было бы навигация (но я все еще открыт для исправления моего понимания этого термина).