1

У меня есть пакетный файл в E:\dir0\dir1, который вызывает exe0.exe в этой папке. Мне нужно, чтобы первый аргумент для exe был E:\dir0\dir2\dir3\script.js.

Проблема заключается в том, что имя dir0 (и любые его родительские каталоги), а также буква диска могут измениться. Я получил, насколько:

exe0.exe %~d0\dir0\dir2\dir3\script.js %*

Теперь мне просто нужно сделать этот относительный путь каким-либо образом (с \..?)

1 ответ1

0

Чтобы было ясно, похоже, что вы описываете структуру папок, которая выглядит примерно так:

{unknown}\dir0\dir1\batfile.bat
{unknown}\dir0\dir1\exe0.exe
{unknown}\dir0\dir2\dir3\script.js

Очень простой способ сделать это - избежать использования букв дисков и вместо этого использовать относительный путь, например так:

exe0.exe ..\dir2\dir3\script.js

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

pushd ..\dir2\dir3\script.js
set "ScriptDir=%cd%"
popd
exe0.exe "%ScriptDir%"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .