Como usar argumentos de linha de comando para terminal do Windows

Você pode usar wt.exe para abrir uma nova instância do Terminal do Windows por meio da linha de comando. Você também pode usar o alias de execução wt em vez disso.

Observação

Se você criou o Terminal do Windows com base no código-fonte no GitHub, poderá abrir esse build usando wtd.exe ou wtd.

Windows Terminal command line argument for split panes

Sintaxe de linha de comando

A linha de comando wt aceita dois tipos de valores: opções e comandos. As opções são uma lista de sinalizadores e outros parâmetros que podem controlar o comportamento da linha de comando wt como um todo. Os comandos fornecem a ação ou a lista de ações separadas por ponto e vírgula que devem ser implementadas. Se nenhum comando for especificado, o comando será considerado como new-tab por padrão.

wt [options] [command ; ]

Observação

O comportamento do comando wt.exe pode ser afetado pela propriedade windowingBehavior. Essa configuração pode ser ajustada como padrão entre abrir uma nova janela ou abrir uma nova guia.

Para exibir uma mensagem de ajuda listando os argumentos de linha de comando disponíveis, digite: wt -h, wt --help, wt -? ou wt /?.

Opções e comandos

Abaixo, temos a lista completa de comandos e opções compatíveis com a linha de comando wt.

Opção Descrição
--help, -h, -?, /? Exibe a mensagem de ajuda.
--maximized, -M Inicia o terminal maximizado.
--fullscreen, -F Inicia o terminal como tela inteira.
--focus, -f Inicia o terminal no modo de foco. Pode ser combinado com maximized.
--pos x,y Inicia o terminal na posição fornecida. x ou y pode ser omitido para usar o valor padrão das configurações.
--size c,r Inicia o terminal com o número especificado de colunas (c) e linhas (r).
--window, -w window-id Executa o comando especificado em uma janela específica.

O parâmetro --window pode ser usado para enviar comandos a janelas de terminal existentes.

window-id pode ser a ID de inteiro de uma janela ou o nome de uma janela. Ele também aceita os seguintes valores reservados:

  • new ou -1: sempre executar este comando em uma nova janela
  • last ou 0: sempre executar este comando na última janela usada

Se não existir nenhuma janela com o window-id fornecido, uma janela será criada com a mesma ID e o mesmo nome.

Por exemplo, a execução de wt -w _quake abrirá uma nova "janela no modo quake". Uma nova execução desse comando abrirá uma nova guia na janela no modo quake existente.

Comando nova guia

Usado para criar uma guia. Veja também a ação newTab.

Comando Parâmetro Descrição Valores
new-tab, nt --profile, -p profile-name Cria uma guia com base no nome do perfil atribuído. Nome do perfil
new-tab, nt --startingDirectory, -d starting-directory Cria uma guia com base no caminho do diretório inicial atribuído. Caminho do diretório
new-tab, nt commandline Cria uma guia com base na linha de comando atribuída. Executável com comandos opcionais
new-tab, nt --title Cria uma guia com o título atribuído. Texto a ser usado como o título da guia
new-tab, nt --tabColor Cria uma guia com a cor da guia atribuída. Cor hexa como #RGB ou #RRGGBB
new-tab, nt --suppressApplicationTitle Substituir a configuração suppressApplicationTilte do perfil e defini-la como true
new-tab, nt --useApplicationTitle Substituir a configuração suppressApplicationTilte do perfil e defini-la como false
new-tab, nt --colorScheme scheme-name Substituir a configuração colorScheme do perfil e defini-la como o esquema das configurações com o nome scheme-name O nome de um esquema de cores nas configurações

Dica

Se você alterar o título de uma guia no Terminal do Windows e quiser que esse título persista, deverá habilitar a opção suppressApplicationTitle definindo-a como true.

Comando dividir painel

Usado para criar um painel dividido. Veja também a ação splitPane.

Comando Parâmetro Descrição Valores
split-pane, sp -H, --horizontal, -V, --vertical Cria um painel de janela dividida horizontal ou verticalmente. N/D Nenhum valor adicional a ser atribuído.
split-pane, sp --profile, -p profile-name Cria um painel de janela dividida com base no perfil de linha de comando atribuído. Se esse parâmetro não for atribuído, o perfil padrão será usado. Nome do perfil
split-pane, sp --startingDirectory, -d starting-directory Cria um painel de janela dividida com base no caminho do diretório inicial atribuído. Se esse parâmetro não for atribuído, o diretório inicial padrão será usado. Caminho do diretório
split-pane, sp --title Cria um painel de janela dividida com o título atribuído. Texto a ser usado como o título da guia
split-pane, sp --tabColor Cria um painel de janela dividida com a cor de guia atribuída. Cor hexa como #RGB ou #RRGGBB
split-pane, sp --size, -s size Cria um painel de janela dividida com o tamanho atribuído. Float que especifica a parte do painel pai a ser usada, representada por um decimal. Por exemplo, .4 para representar 40% do painel pai.
split-pane, sp commandline Cria um painel de janela dividida com base na linha de comando atribuída. Executável com comandos opcionais
split-pane, sp --duplicate, -D Cria um painel de janela dividida que é uma duplicata do painel atual. N/D Nenhum valor adicional a ser atribuído.
split-pane, sp --suppressApplicationTitle Substituir a configuração suppressApplicationTilte do perfil e defini-la como true
split-pane, sp --useApplicationTitle Substituir a configuração suppressApplicationTilte do perfil e defini-la como false
split-pane, sp --colorScheme scheme-name Substituir a configuração colorScheme do perfil e defini-la como o esquema das configurações com o nome scheme-name O nome de um esquema de cores nas configurações

Comando focar guia

Usado para focalizar uma guia específica dentro da janela. Veja também a ação switchToTab.

Comando Parâmetro Descrição Valores
focus-tab, ft --target, -t tab-index Volta o foco para uma guia específica de acordo com seu número no índice de guias. Índice de guias como um inteiro

Comando mover foco

Usado para mover o foco dentro da janela. Veja também a ação moveFocus.

Comando Parâmetro Descrição Valores
move-focus, mf <direction> Move o foco entre painéis. Veja abaixo os valores de direction aceitos

Valores de direction aceitos

  • up, down, left ou right movem o foco na direção determinada.
  • first move o foco para o primeiro painel folha na árvore.
  • previous move o foco para o último painel usado antes do painel atual.
  • nextInOrder, previousInOrder movem o foco para o painel seguinte ou anterior na ordem de criação.

Comando move-pane

Usado para mover um painel dentro da janela. Veja também a ação movePane.

Comando Parâmetro Descrição Valores
move-pane, mp --tab,-t <index> Mover o painel ativo para a guia fornecida na janela O índice indexado em zero da guia para a qual o painel deve ser movido.

Comando swap-pane

Usado para trocar a posição de dois painéis dentro da janela. Veja também a ação swapPane.

Comando Parâmetro Descrição Valores
swap-pane <direction> Trocar o painel pelo painel na direção determinada Veja abaixo os valores de direction aceitos

Valores de direction aceitos (são os mesmos valores que os do subcomando move-focus)

  • up, down, left ou right: trocar o painel ativo pelo que está na direção determinada.
  • first: trocar o painel ativo pelo primeiro painel folha na árvore.
  • previous: trocar o painel ativo pelo último painel usado antes do painel atual.
  • nextInOrder, previousInOrder: trocar o painel ativo pelo painel seguinte ou anterior na ordem de criação.

Exemplos de argumentos de linha de comando

Os comandos podem variar um pouco dependendo da linha de comando que você está usando.

Passando um argumento para o shell padrão

Para iniciar uma instância do Terminal do Windows e fazer com que ela execute um comando, chame wt.exe seguido pelo comando.

Veja um exemplo de chamada para o Terminal do Windows para passar um argumento de comando ping para ecoar um endereço IP:

wt ping learn.microsoft.com

Veja um exemplo de chamada para o Terminal do Windows para abrir uma nova guia com uma linha de comando do PowerShell, confirmar a chamada para o comando Start-Service e abrir outra guia com o Prompt de Comando do Windows aberto no diretório /k:

wt new-tab PowerShell -c Start-Service ; new-tab cmd /k dir

Direcionar a uma janela específica

Abaixo estão exemplos de como direcionar janelas específicas usando a opção --window,-w.

// Open a new tab with the default profile in the current window
wt -w 0 nt

// Open a new tab in a new window with the default profile
wt -w -1 nt

// Open a new tab in the first-created terminal window with the default profile
wt -w 1 nt

// Open a new tab in the terminal window named foo with the default profile. If foo does not exist, create a new window named foo.
wt -w foo nt

Abrir uma nova instância de perfil

Para abrir uma nova instância de terminal (nesse caso o comando abrirá o perfil chamado "Ubuntu-18.04"), digite:

wt -p "Ubuntu-18.04"

O sinalizador -p é usado para especificar o perfil do Terminal do Windows que deve ser aberto. Substitua "Ubuntu-18.04" pelo nome de um perfil de terminal que você tenha instalado. Isso sempre abrirá uma nova janela. O Terminal do Windows ainda não é capaz de abrir novas guias ou painéis em uma instância existente.

Direcionar a um diretório

Para especificar a pasta que deve ser usada como o diretório inicial para o console, que neste caso é o diretório d:\, digite:

wt -d d:\

Várias guias

Para abrir uma nova instância de terminal com várias guias, digite:

wt ; ;

Para abrir uma nova instância de terminal com várias guias, nesse caso, um perfil de prompt de comando e um perfil do PowerShell, digite:

wt -p "Command Prompt" ; new-tab -p "Windows PowerShell"

Vários painéis

Para abrir uma nova instância de terminal com uma guia que contém três painéis que executam um perfil de prompt de comando, um perfil do PowerShell e seu perfil padrão executando uma linha de comando do WSL, digite:

wt -p "Command Prompt" ; split-pane -p "Windows PowerShell" ; split-pane -H wsl.exe

O sinalizador -H (ou --horizontal) indica que você deseja que os painéis sejam divididos horizontalmente. O sinalizador -V (ou --vertical) indica que você deseja que os painéis sejam divididos verticalmente.

Várias guias e painéis

Os comandos new-tab e split-pane podem ser sequenciados para obter várias guias, cada uma com painéis divididos. Para abrir uma nova instância do terminal com duas guias, cada uma com dois painéis executando um Prompt de Comando e uma linha de comando WSL, com cada guia em um diretório diferente, digite:

wt -p "Command Prompt" ; split-pane -V wsl.exe ; new-tab -d c:\ ; split-pane -H -d c:\ wsl.exe

Título do painel

Para abrir uma nova instância de terminal com títulos personalizados para cada painel de terminal, use o argumento --title. Para definir o título de cada painel ao abrir várias guias, digite:

wt --title tabname1 ; new-tab -p "Ubuntu-18.04" --title tabname2

Os painéis na mesma guia podem ter títulos diferentes, o que refletirá sobre o título da guia, dependendo de qual painel tem foco. Para nomear painéis independentes, você pode definir o título depois de dividir os painéis inserindo:

wt --title pane1 ; split-pane -p "Command Prompt" --title pane2

Usando o bloco de aplicativo

Para abrir uma nova instância do terminal, permitindo que os aplicativos dentro dela definam o título da guia enviando mensagens de alteração de título, use o sinalizador --useApplicationTitle. Para suprimir essas mensagens, use o sinalizador --suppressApplicationTitle. Se nenhum desses sinalizadores for fornecido, o comportamento será herdado das configurações do perfil. Para abrir uma guia com título tabname que não será substituída pelo aplicativo, digite:

wt --title tabname --suppressApplicationTitle

Cor da guia

Para abrir uma nova instância de terminal com cores de guias personalizadas, use o argumento --tabColor. Esse argumento substitui o valor definido no perfil, mas também pode ser substituído usando o seletor de cores da guia. No exemplo a seguir, é criado um terminal com duas guias de cores diferentes:

wt --tabColor #009999 ; new-tab --tabColor #f59218

Quando --tabColor é definido para uma guia, ele é associado ao primeiro painel dessa guia. Portanto, em uma guia com vários painéis, a cor será aplicada somente se o primeiro painel estiver em foco. Para definir a cor da guia para painéis adicionais, também será necessário adicionar o parâmetro --tabColor ao subcomando split-pane. No exemplo a seguir, uma guia com dois painéis é criada com as cores das guias especificadas para cada painel:

wt new-tab --tabColor '#009999' `; split-pane --tabColor '#f59218'

Esquema de cores

Para abrir uma nova instância do terminal com um esquema de cores específico (em vez do colorScheme definido no perfil), use o argumento --colorScheme. Esse argumento substitui o valor definido no perfil.

wt --colorScheme Vintage ; split-pane --colorScheme "Tango Light"

Foco da guia

Para abrir uma nova instância de terminal com uma guia específica em foco, use o sinalizador -t (ou --target) juntamente com o número de índice de tabulação. Para abrir o perfil padrão na primeira guia e o perfil "Ubuntu-18.04" focalizado na segunda guia (-t 1), digite:

wt ; new-tab -p "Ubuntu-18.04" ; focus-tab -t 1

Exemplos de vários comandos do PowerShell

O Terminal do Windows usa o caractere de ponto e vírgula (;) como um delimitador para separar comandos na linha de comando wt. Entretanto, o PowerShell também usa ; como um separador de comandos. Para solucionar esse erro, você pode usar os seguintes truques para executar vários comandos wt por meio do PowerShell. Em todos os exemplos a seguir, uma nova janela de terminal é criada com três painéis: um prompt de comando em execução, outro com o PowerShell e o último executando o WSL.

Os exemplos a seguir não usam start para executar a linha de comando. Em vez disso, há dois outros métodos para escapar a linha de comando:

  • Apenas escapar pontos-e-vírgulas para que PowerShell os ignore e os transmita-os diretamente para wt.
  • Usando --%, de modo que o PowerShell tratará o restante da linha de comando como argumentos para o aplicativo.
wt new-tab "cmd" `; split-pane -p "Windows PowerShell" `; split-pane -H wsl.exe
wt --% new-tab cmd ; split-pane -p "Windows PowerShell" ; split-pane -H wsl.exe

Em ambos os exemplos, a janela do Terminal do Windows recém-criada criará a janela analisando corretamente todos os argumentos de linha de comando fornecidos.

No entanto, esses métodos não são recomendados atualmente, pois o PowerShell aguardará a janela do terminal recém-criada ser fechada antes de retornar o controle ao PowerShell. Por padrão, o PowerShell sempre aguardará que os aplicativos da Microsoft Store (como o Terminal do Windows) sejam fechados antes de retornar ao prompt. Observe que isso é diferente do comportamento do prompt de comando, que retornará ao prompt imediatamente.

Adicionar o executável do Terminal do Windows ao seu CAMINHO

Para adicionar o arquivo executável do Terminal do Windows (wt.exe) ao seu CAMINHO, habilite o "alias de execução de aplicativo" na página Gerenciar alias de execução do aplicativo das Configurações do Windows. O alias do Terminal do Windows fica ativado por padrão, mas vale a pena confirmar caso esteja tendo problemas para acessá-lo.

Se você ainda estiver tendo problemas para acessar alias de execução do aplicativo, talvez seja necessário verificar se o CAMINHO contém: %LOCALAPPDATA%\Microsoft\WindowsApps. Não tente fazer alterações em C:\Program Files\WindowsApps.

Windows Settings for App Execution Aliases