Установка CMD CD в каталог, в котором был запущен пакет

Установка CMD CD в каталог, в котором был запущен пакет

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

Я использую это, set APPDATA=%CD%\dataчтобы сказать ему сделать это. Проблема, с которой я сталкиваюсь, заключается в том, что я получаю следующую ошибку при запуске партии:

CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory.

Я хочу вместо этого использовать cdкоманду, чтобы изменить его на пакетный каталог. Есть ли простой способ сделать это?

решение1

Если он находится на сетевом диске, у вас все равно могут возникнуть проблемы, пока вы не подключите диск. Но почему бы не сделать следующее?

APPDATA=%~dp0
cd /d %APPDATA%

Выполнив cls, вы также можете очистить ошибку, но если скрипт запущен из UNC-пути, вы получите эту ошибку, вам просто придется сопоставить ее или CLS устранить ошибку.

решение2

Попробуйте добавить это в пакет:

pushd "%~p0" 2> nul
pushd "\\%~p0" 2> nul

Если запустить из папки UNC, то первая строка не будет работать, но вторая будет работать.

Если запустить из папки, подключенной к диску, вторая строка не будет работать, но первая будет работать.

В любом случае текущей папкой будет папка, в которой находится пакетный файл, и оттуда вы сможете менять папки.

Позже вы сможете использовать его cdдля отображения папки, с которой вы работаете.

Связанный контент