Установка 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 команда, чтобы изменить его в каталог пакета. Есть простой способ сделать это?

2 ответа

Решение

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

APPDATA=%~dp0
cd /d %APPDATA%

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

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

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

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

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

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

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

Другие вопросы по тегам