Поскольку это, как правило, довольно проблематично, так как здесь НЕТ элегантного способа, я рекомендую избегать проблемы, изменив решение: создайте свой PATH, а не пытайтесь его разрушить.
Я мог бы быть более конкретным, если бы знал ваш реальный проблемный контекст. Тем временем я буду использовать сборку программного обеспечения в качестве контекста.
Общая проблема со сборками программного обеспечения заключается в том, что он ломается на некоторых машинах, в конечном счете из-за того, как кто-то настроил свою оболочку по умолчанию (PATH и другие переменные среды). Элегантное решение состоит в том, чтобы сделать ваши сценарии сборки защищенными, полностью указав среду оболочки. Кодируйте ваши сценарии сборки, чтобы установить переменные PATH и другие переменные среды, основываясь на сборочных элементах, которыми вы управляете, таких как расположение компилятора, библиотек, инструментов, компонентов и т. Д. Сделайте каждый настраиваемый элемент тем, что вы можете индивидуально установить, проверить и затем используйте правильно в вашем скрипте.
Например, у меня есть основанная на Maven сборка Java с WebLogic, которую я унаследовал у моего нового работодателя. Сценарий сборки печально известен своей хрупкостью, и еще один новый сотрудник и я потратили три недели (не полный рабочий день, просто здесь и там, но еще много часов), чтобы заставить его работать на наших машинах. Важным шагом было то, что я взял под контроль PATH, чтобы точно знать, какая Java, какая Maven и какая WebLogic вызывались. Я создал переменные окружения, чтобы они указывали на каждый из этих инструментов, затем я рассчитал PATH, основываясь на этих плюс нескольких других. Подобные методы укротили другие настраиваемые параметры, пока мы наконец не создали воспроизводимую сборку.
Кстати, не используйте Maven, с Java все в порядке, и покупайте WebLogic только в том случае, если вам абсолютно необходима его кластеризация (но в противном случае нет, и особенно это не касается его проприетарных функций).
С наилучшими пожеланиями.