Я хочу создать командный файл для быстрого переключения переменной PATH, чтобы иметь возможность работать в другой среде, а затем другой для ее восстановления. Я предполагаю, что это будет сделано через setx
и некоторую форму поиска и замены, однако я ничего не знаю о пакетных файлах.
1 ответ
Хотя это не дает прямого ответа на ваш вопрос, оно решает вашу проблему, и по этой причине я нашел ценность ответа, а не комментария.
Переменная окружения PATH может хранить несколько путей. Порядок поиска путей слева направо. Это фактически означает, что если вы добавите путь к началу переменной окружения PATH, он будет найден первым.
Это устраняет необходимость замены существующего пути, если только вы не хотите убедиться, что другой путь удален, что не будет делать это решение.
Чтобы добавить папку в начало среды PATH, используйте следующий код:
set PATH=c:\myfolder;%PATH%
Требуется% PATH%, иначе вы очистите набор путей и полностью замените его своей папкой.
Учитывая, что была использована команда set, в ней будет храниться только путь для вашего текущего сеанса. Чтобы передать путь в среду Windows, чтобы он запоминался для каждого сеанса, необходимо выполнить следующую команду:
setx PATH "%PATH%"
Учитывая, что вы хотите использовать его для восстановления позже, я бы посоветовал создать 2 пакетных файла для запуска того, для чего вы хотите использовать другой путь, и для того, который использует альтернативный путь, вы начинаете с команды SET и для того, кто использует реальный, вы не делаете.
Таким образом, при каждом запуске командного файла для альтернативного пути этот путь добавляется и сначала ищется, поэтому он находит его.
Наконец, можно установить PATH на основе других переменных среды, что позволяет вам переключаться.
Сначала вам нужно создать 2 копии оригинального Path:
setx PATH_orig "%PATH%"
setx PATH_alt "%PATH%"
Теперь отредактируйте PATH_alt так, как вы обычно редактируете PATH.
Теперь вы можете просто переключаться с помощью следующих команд:
:: Restore to original
setx PATH "PATH_orig"
:: Set alternate path
setx PATH "PATH_alt"