Вопрос или проблема
Можно ли запустить терминал Windows с (несколькими) вкладками, каждая из которых находится в настроенной рабочей директории?
Причина в том, что я обычно каждый день выполняю одни и те же шаги вручную: запускаю несколько оболочек и в каждой из них захожу в определенный путь. Например:
- GitBash в мою рабочую область
- Cmd в директорию сборки в моей рабочей области
- Ubuntu bash в приложение для генерации данных
- …
Было бы очень здорово автоматизировать эти шаги.
Этот вопрос немного похож на Открыть терминал с предустановленными вкладками, но для нового терминала Windows.
Я думаю, что создание пользовательского ярлыка может хотя бы частично решить вашу проблему.
- Щелкните правой кнопкой мыши на рабочем столе -> Новый -> Ярлык
- Введите конфигурацию запуска, которую хотите, например:
wt ; new-tab -p "Командная строка" -d C:\Users\Donatas\Workspace ; split-pane -p "Ubuntu"
- wt – открывает терминал Windows
- new-tab – открывает новую вкладку
- split-pane – разделяет экран (можно разделить вкладку как вертикально, так и horizontally)
- -p указывает профиль, например, Ubuntu
- -d указывает начальную директорию профиля
Дополнительная информация: https://devblogs.microsoft.com/commandline/windows-terminal-preview-v0-9-release/
- Введите имя ярлыка.
- Запустите ярлык, у вас должны появиться две вкладки, и вторая вкладка должна быть разделена на две. Что-то вроде этого:
Терминал Windows с несколькими вкладками
- По желанию, вы можете изменить иконку, прикрепить к панели задач или панели запуска.
- Откройте терминал Windows
- Откройте настройки (Ctrl+,)
- Нажмите “Открыть файл JSON”
- Добавьте (или измените) необязательный параметр “startupActions” с вашей конфигурацией запуска (например, как описано @Donatas Repečka). Единственное отличие – вам не нужно указывать “wt” в начале.
- Сохраните файл и перезапустите WT.
Не забудьте, что строка должна быть правильно экранирована.
Мой пример:
"startupActions": "new-tab -p \"Командная строка\" --title \"mytab\" -d C:\\Users\\blabla ; new-tab -p \"Командная строка\" --title \"othertab\" -d C:\\Users\\otherbla ,
Еще несколько вещей о:
- запятая в конце в моем примере лишь потому, что существуют следующие строки конфигурации
- если вы поставите “;” в начале (или в конце), WT откроет вкладку по умолчанию в начале (или в конце)
- решение с ярлыком Windows удивительное, но вы не можете использовать действительно длинные (более 260 символов) строки, так что это может не работать для вас
Поскольку у меня нет репутации для комментирования, я опубликую ответ.
wt ; new-tab -p "Командная строка" -d C:\Users\Donatas\Workspace ; split-pane -p "Ubuntu"
Эта команда работает только в оболочке команд Windows (cmd
), но не в PowerShell. Команда отличается в WSL. Смотрите справочник CLI для wt
для получения более подробной информации.
Для PowerShell точки с запятой нужно экранировать обратной косой чертой:
wt `; new-tab -p "Командная строка" -d C:\Users\Donatas\Workspace `; split-pane -p "Ubuntu"
Строя на ответе от @kilj
Вы можете создать профили в settings.json
, а затем вызывать разные профили с помощью строки startupActions
. Каждый профиль требует uuid для guid и может быть обозначен по имени. Например, вы можете добавить профиль:
{
"guid": "{7c58fcf0-5fcd-4d8e-8f96-e6908c600f6b}",
"hidden": false,
"tabColor": "#0000FF",
"startingDirectory": "%systemdrive%\\Windows\\System32\\openssh",
"name": "foo"
}
и добавить действие запуска:
"startupActions": "nt -p foo"
чтобы открыть новую вкладку терминала, которая будет запущена в директории openssh и будет иметь синий цвет вкладки. Вы можете объединить несколько команд новой вкладки, чтобы соответствовать различным профилям, которые вы создаете, и добавить `”commandline”: “”`, если хотите, чтобы профиль запускался с командой. Смотрите здесь для получения дополнительной информации.
Есть способ добавить в контекстное меню (меню правой кнопки мыши) опцию открыть терминал Windows с вкладками, которые вы хотите, в директории, в которой вы находитесь. Вам нужно будет воспользоваться редактором реестра Windows.
Шаги следующие:
Шаг 1: Откройте редактор реестра, вы можете сделать это, набрав его название в поиске на панели задач или набрав regedit
в окне выполнения (откройте его с помощью Windows + R
).
Шаг 2: Находясь в редакторе реестра, перейдите к \HKEY_CLASSES_ROOT\Directory\Background
. Щелкните правой кнопкой на подкаталоге shell
и нажмите новый
, выбрав ключ
. Переименуйте этот ключ как вам угодно, это может быть что-то вроде “Открыть терминал Windows здесь”. Здесь вы можете увидеть, как это должно выглядеть при создании нового ключа.
Шаг 3: В созданном вами новом ключе вы должны создать еще один подключ, щелкнув по нему правой кнопкой мыши и создав новый ключ так же, как и прежде. Этот новый ключ должен называться command
.
Шаг 4: С выбранным ключом command
дважды щелкните по строковому значению, которое вы видите справа от экрана. Вы можете изменить его значение по вашему усмотрению. Теперь команды, которые вы можете ввести в терминале, очень полезны. Вы можете ввести следующее как строковое значение:
wt -d . ; new-tab -p "Ubuntu-20.04" -d . ; new-tab -p "Командная строка" -d . ;
Это должно сработать, изменяя название вкладок терминала, открываемых по названию терминалов, которые вы хотите открыть.
Шаг 5, по желанию: Вы можете добавить иконку, которая вам нравится, к записи, которую вы только что создали в контекстном меню (меню правой кнопкой мыши). Это делается путем создания нового строкового значения в ключе (Изображение здесь), который вы создали в Шаге 2. Это строковое значение должно быть переименовано в Icon
, а значение, которое оно должно содержать, – это директория иконки, которую вы хотите использовать в новой записи меню, которую вы создали. Кажется, это также работает с директориями приложений, которые вы хотите выполнить, я говорю это, потому что это сработало для меня, установив абсолютную директорию терминала Windows в значении ключа Icon
.
Единственное неожиданное в этом то, что при открытии терминала Windows открывается дополнительная вкладка, которая является вкладкой по умолчанию. Я не думаю, что это сложная проблема для решения, но я просто закрываю эту вкладку каждый раз, когда открываю терминал.
Я решил проблему запуска для Bash (но, вероятно, аналогичные решения могут быть использованы для Ubuntu, PowerShell или Cmd), используя следующее:
- Я изменил мой .bash-profile, чтобы он содержал следующее (это значит: если в папке запуска есть .bashrc, она выполняется вместо стандартной .bashrc):
test -f ~/.profile && . ~/.profile
test -f ./.bashrc && . ./.bashrc
test ! -f ./.bashrc && test -f ~/.bashrc && . ~/.bashrc
-
В этом специфическом для папки .bashrc я могу ввести команды запуска для каждой вкладки
-
Я запускаю WindowsTerminal так:
C:\Users\[ПОЛЬЗОВАТЕЛЬ]\AppData\Local\Microsoft\WindowsApps\wt.exe new-tab -p "Bash" -d E:\work\api-server ; new-tab -p "Bash" -d E:\work\web-client
Эта простая команда создает вкладку с 3 окнами powershell, разделенными, и вкладку с 3 окнами bash, разделенными;
- когда вы находитесь в cmd.exe
wt powershell.exe ; nt bash --noprofile --norc ; sp bash --noprofile --norc ; sp bash --noprofile --norc ; focus-tab -t 0 ; sp powershell.exe ; sp powershell.exe
- когда вы находитесь в powershell.exe или wsl bash
cmd.exe /c "wt powershell.exe ; nt bash --noprofile --norc ; sp bash --noprofile --norc ; sp bash --noprofile --norc ; focus-tab -t 0 ; sp powershell.exe ; sp powershell.exe"
У меня есть другое решение для этого: в Windows 11 приложение терминала Windows позволяет настраивать предустановленные “профили”. Каждый профиль может быть просто прямой ссылкой на исполняемый файл, который при выборе запустится в своей вкладке. Это идеально для разработчиков, которые могут захотеть запускать только определенные микросервисы и выбирать только те, которые необходимы в данный момент.
Шаги:
- откройте терминал Windows
- нажмите на символ “выпадающего списка”, а затем выберите настройки
- в разделе профили выберите “добавить новый профиль”
- выберите “новый пустой профиль”
- в поле имя задайте имя, как вы хотите, чтобы оно отображалось
- в поле командной строки укажите путь к исполняемому файлу, который вы хотите выполнить
Вы даже можете определить пользовательские фоны, чтобы различать тестовую и производственную среды.
Ответ или решение
Windows Terminal: Автоматизация Открытия Предопределённых Вкладок
Вопрос о том, как запустить Windows Terminal с несколькими вкладками, каждая из которых открыта в заранее заданной рабочей директории, является актуальным для многих пользователей. Это может значительно упростить ежедневные задачи, если вы регулярно используете определенные оболочки и директории. В этой статье мы подробно рассмотрим, как достичь этой цели, используя разные подходы.
1. Использование командной строки при запуске
Одним из самых простых способов автоматизации открытия терминала с предопределенными вкладками является использование командной строки. Для этого вам необходимо создать ярлык на рабочем столе с определённой конфигурацией команд.
Шаги:
-
Щелкните правой кнопкой мыши на рабочем столе и выберите Создать → Ярлык.
-
Введите команду, аналогичную следующей:
wt ; new-tab -p "Command Prompt" -d C:\Users\Ваш_Пользователь\Workspace ; new-tab -p "Ubuntu" -d C:\Users\Ваш_Пользователь\DataGeneration
В этой команде:
wt
— открывает Windows Terminal.new-tab
— создает новую вкладку.-p
— указывает профиль для новой вкладки (например, Command Prompt или Ubuntu).-d
— определяет начальную директорию.
-
Дайте вашему ярлыку имя и сохраните его. Теперь при запуске через созданный ярлык Windows Terminal откроется с заранее определёнными вкладками.
2. Настройка через файл настроек
Вы также можете настроить открытие вкладок непосредственно из конфигурационного JSON-файла Windows Terminal. Этот способ более гибкий и позволяет сохранить настройки в одном месте.
Шаги:
-
Откройте Windows Terminal.
-
Нажмите Ctrl + , для доступа к настройкам.
-
Выберите Open JSON file для редактирования файла конфигурации.
-
Найдите параметр
"startupActions"
и добавьте вашу команду для открытия вкладок:"startupActions": "new-tab -p \"Command Prompt\" -d C:\\Users\\Ваш_Пользователь\\Workspace ; new-tab -p \"Ubuntu\" -d C:\\Users\\Ваш_Пользователь\\DataGeneration"
-
Сохраните изменения и перезапустите Windows Terminal. Теперь при запуске программы будут открываться вкладки с нужной конфигурацией.
3. Использование редактора реестра
Для более автозируемых решений можно добавить пункт в контекстное меню, позволяющий открывать Windows Terminal с заранее заданными вкладками в определенной директории.
Шаги:
- Откройте Редактор реестра, введя
regedit
в поиске Windows. - Перейдите к
HKEY_CLASSES_ROOT\Directory\Background
. - Щелкните правой кнопкой мыши на
shell
, выберите New → Key и назовите его, например, "Открыть Windows Terminal здесь". - Создайте подкаталог с именем
command
. -
Установите значение ключа
command
на следующую строку:wt -d . ; new-tab -p "Ubuntu" -d . ; new-tab -p "Command Prompt" -d .
После выполнения этих шагов вы сможете открыть Windows Terminal с заданными вкладками, просто щелкнув правой кнопкой мыши в нужной папке.
4. Использование конфигураций профилей
Наконец, каждый профиль в Windows Terminal может быть настроен таким образом, чтобы открываться с определёнными параметрами. Это особенно полезно, если вам нужно запускать специфичные программы каждый раз.
Шаги:
- В меню Windows Terminal выберите раздел настроек.
- Перейдите στην раздел Profiles и добавьте новый профиль.
- Укажите путь к исполняемому файлу вашего приложения в поле
command line
.
Это позволит вам запускать разные приложения, просто выбирая нужный профиль.
Заключение
Автоматизация открытия вкладок в Windows Terminal — это эффективный способ оптимизации рабочего процесса и уменьшения рутинных действий. Использование командной строки, редактирование JSON-файла настроек, работа с реестром и настройка профилей предоставляют разнообразные инструменты для достижения этой цели. Выберите тот способ, который больше всего подходит вашим нуждам, и начните экономить время уже сегодня.