Моя цель - написать приложение, которое позволит вам быстро назначать псевдонимы длинным путям каталогов и изменять их.Я написал приложение, которое управляет ими в файле в каталоге appdata пользователя, но я не могу найти способ изменить каталог оболочки, в которой я запускаю программу, из моего приложения.Моя цель - заставить его работать с git bash, cmd.exe и powershell.Я хочу что-то вроде этого:
cd /c/vsts/some-long-project-name-reports
g -a reports
Теперь у меня есть псевдоним «отчеты» для этого каталога.В следующий раз, когда я открою консоль, я хочу попасть в этот каталог:
g reports
Я использую ядро dotnet, хотя, просматривая вопросы, кажется, что нет способа сделать это ввсе.С Directory.SetCurrentDirectory(path);
или Environment.CurrentDirectory = path;
он изменяет рабочий каталог процесса g.exe, но когда он выходит, оболочка возвращается в свой рабочий каталог, когда я запускаю команду.
Я пришел срешение для git bash, я изменил мое приложение g
, чтобы вместо него выводить путь, и теперь в моем пути это go
:
OUTPUT="$(g $1)"
cd $OUTPUT
Тогда мне просто нужно использовать .
или source
чтобы запустить скрипт в текущей оболочке:
. go reports
И пакетный файл go.bat
не требует .
или source
для работы:
for /F "tokens=*" %%i in ('g %1') do set OUTPUT=%%i
cd %OUTPUT%
Iдумаю, мне придется смириться с набором дополнительных символов, но есть ли подобный способ сделать это с powershell?