Выполнение пакета в Powershell (Win 10) не влияет на родительскую оболочку

Просто для понимания этого.

Я хочу открыть мой Powershell в определенной папке. Поскольку я не узнал, как, я попытался поместить пакетный файл с просто "cd....." в папку по умолчанию, где открывается PowerShell. Когда я выполняю пакет, я в конечном итоге начинаю с того, с чего начал. Кажется, что партия исполняется в подоболочке, которая не влияет на Parentshell.

Как я могу выполнить материал в пакетном файле в родительской оболочке?

Заранее спасибо!

2 ответа

Решение

Ты не можешь. Пакетные файлы выполняются cmd, а не PowerShell, поэтому для них всегда будет новый процесс.

С помощью скрипта PowerShell вы можете использовать точечный источник

. Script.ps1

Выполнить скрипт в текущей области видимости, что больше всего похоже на то, как командные файлы выполняются cmd по умолчанию.

Если вы хотите открыть свой Powershell в определенной папке, вы можете настроить его в своем профиле Powershell. В Powershell введите $profile, и это даст вам местоположение вашего файла профиля. Отредактируйте этот файл и используйте Set-Location:

Set-Location 'C:\Some\Place'

Powershell будет выполнять все, что есть в вашем профиле сценария, каждый раз, когда вы открываете новый сеанс Powershell.

Другие вопросы по тегам