Когда вы находитесь в проводнике, вы можете нажать File > Open Windows Powershell
(или его значок на панели быстрого доступа), чтобы запустить экземпляр Powershell в каталоге, в котором находится ваш файловый менеджер. Я хотел бы затем автоматически запустить простая команда в этом каталоге и закройте окно Powershell после того, как это будет сделано.
Я попытался добавить свою команду в свой профиль Powershell, но она выполняется до того, как была задана переменная пути, и выполняется с $pwd
, равным C:\Users\MyUsername
(мой домашний каталог) или C:\WINDOWS\system32
(кажется, расы какого-то рода, понятия не имею, почему так или иначе). Насколько я понимаю, это потому, что проводник файлов «кнопка открытия в powershell» открывает powershell и ТОГДА компакт-диски в каталог, в котором я находился в проводнике файлов. Поэтому, когда файл profile.ps1 запущен, он использует только те каталоги, которые он знает, поскольку вызов cd еще не был выполнен. Это похоже на выполнение команды start powershell.exe
в cmd против start powershell.exe -command "cd 'C:\wherever'"
. Первый правильно запускает команду моего профиля, а второй использует текущий каталог cmd, а не C:\wherever
.
Итак, очевидно, что переменная $pwd
присваивается в разное время в случае ее открытия из cmd и открытия из проводника. Есть ли способ отложить выполнение команды в профиле до полной загрузки оболочки? Просто спать сценарий не помогает.
В качестве альтернативы, если кто-то знает, как редактировать реестр, чтобы я мог изменить поведение нажатия File > Open Windows Powershell
(поскольку он должен иметь доступ к некоторой переменной, хранящей текущий каталог, и я предполагаю, что он вызывает исполняемый файл Powershell с этой переменной как аргумент cd'd to), это тоже сработает.
С другой стороны, я мог бы быть невероятно наивным о том, как File > Open Windows Powershell
и процесс создания экземпляров Powershell.
Любая помощь очень ценится, спасибо!