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