Я хочу создать пакетный файл для быстрого переключения переменной PATH, чтобы иметь возможность работать в другой среде, а затем еще один, чтобы восстановить ее. Я предполагаю, что это будет сделано с помощью setx
какой-то формы поиска и замены, однако я ничего не знаю о пакетных файлах.
решение1
Хотя это и не ответ на ваш вопрос напрямую, но это решает вашу проблему, и по этой причине я посчитал это достойным ответа, а не комментария.
Переменная окружения PATH может хранить несколько путей. Порядок путей для поиска — слева направо. Это фактически означает, что если вы добавите путь в начало переменной окружения PATH, он будет найден первым.
Это устраняет необходимость замены существующего пути, если только вам не нужно убедиться, что другой путь удален, чего данное решение сделать не может.
Чтобы добавить папку в начало среды PATH, используйте следующий код:
set PATH=c:\myfolder;%PATH%
;%PATH% обязательно должен присутствовать, в противном случае вы очистите заданный путь и полностью замените его своей собственной папкой.
Учитывая, что была использована команда set, это сохранит только путь для вашего текущего сеанса. Чтобы перенести путь в среду Windows, чтобы он запоминался для каждого сеанса, вам нужно выполнить следующую команду:
setx PATH "%PATH%"
Учитывая, что вы хотите использовать его для восстановления позже, я бы посоветовал создать 2 пакетных файла для запуска того, для чего вы хотите использовать другой путь, и в том, который использует альтернативный путь, вы начинаете с команды SET, а в том, который использует настоящий, вы этого не делаете.
Таким образом, при каждом запуске пакетного файла для альтернативного пути этот путь добавляется и ищется первым, поэтому он находит именно его.
Наконец, можно задать PATH на основе других переменных среды, что позволяет переключаться.
Сначала вам необходимо создать 2 копии исходного пути:
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"