Я пытаюсь найти способ, с помощью которого сценарий PowerShell может быть выполнен без среды «« Проникает »« назад и вперед »между скриптом и другими скриптами/консолью.Создать/уничтожить новую среду в скрипте PowerShell
I.e. если я устанавливаю переменную среды перед вызовом сценария, я не хочу, чтобы скрипт видел эту переменную среды, и если я установил переменную среды в скрипте, я не хочу видеть ее с консоли после этого.
Я строй PowerShell сборки/компиляцию сценария, который вызывает vcvarsall.bat (чтобы получить все Visual C++ 2010 переменных и т.д. в окружающую среду), но я не хочу окружающую среды, которая vcvarsall.bat создает «« утечка »« назад на консоль - я хочу начинать свежий каждый раз, не закрывая/не открывая окно PowerShell.
Чтобы быть понятным, когда вы запускаете один процесс из другого, новый процесс наследует среду своего родителя в момент его создания. Это означает, что переменные среды, созданные в консоли *, будут отображаться * в среде сценария, хотя любые изменения среды в скрипте не будут распространяться обратно в родительский (сравните вывод вызовов 'dir' в примере:' $ env : v1, $ env: v2 = 'alpha', 'beta'; dir env: v *; powershell {$ env: v2, $ env: v3 = 'beta2', 'gamma'; dir env: v *}; dir ENV: v * '). –