As variáveis nos ajudam ao configurar botões da barra de ferramentas ou ao definir ações de associações de arquivos e teclas de atalho.
Basicamente, usamos essas variáveis quando precisamos fornecer parâmetros a um comando com base nos arquivos selecionados, no diretório atual e em outras informações de contexto relacionadas ao que é exibido nos painéis.
Aqui está um exemplo simples: um usuário configura um botão para iniciar o IrfanView e usa a variável %p como parâmetro.

Quando o usuário clica no botão, ele inicia o IrfanView e substitui a variável %p pelo arquivo atualmente selecionado no painel ativo.
É isso que significam as variáveis descritas nesta página.
Como você verá, a maioria das variáveis começa com o símbolo de porcentagem %.
Nota: Variáveis e sufixos diferenciam maiúsculas de minúsculas!
Estas são as variáveis básicas que podem ser usadas, relacionadas à seleção atual.
Por padrão, valores de variáveis que contenham espaços e/ou caracteres especiais são escapados automaticamente: no Windows, o valor será colocado entre aspas duplas, ou em sistemas tipo Unix, um "\" será adicionado antes dos caracteres especiais. Se você precisar do resultado sem aspas, veja a seção Resultado entre aspas ou não.
Para cada variável, o exemplo assume que estamos apontando para o arquivo C:\Users\NomeUsuario\Desktop\comentario.png.
| Variáveis Básicas | |
|---|---|
| Variável | Significado |
%p |
Nome completo do arquivo: caminho + nome do arquivoExemplo: %p = "C:\Users\NomeUsuario\Desktop\comentario.png" |
%f |
Apenas nome do arquivo, incluindo extensãoExemplo: %f = "comentario.png" |
%d |
Apenas o caminho, sem o separador de diretório finalExemplo: %d = "C:\Users\NomeUsuario\Desktop" |
%z |
Nome do último diretório no caminhoExemplo: %z = "Desktop" |
%o |
Apenas nome do arquivo, sem extensãoExemplo: %o = "comentario" |
%e |
Apenas extensão, sem o pontoExemplo: %e = "png" |
%v |
Nome do arquivo relativo ao diretório ativo atual Aplicável, por exemplo, quando chamamos o comando interno cm_FlatView. Se visualizarmos em modo plano a partir de "C:\Users\NomeUsuario", %v resultará em "Desktop\comentario.png" |
A variável %a pode ser usada em sistemas de arquivos virtuais (arquivos compactados abertos ou plugins de sistema de arquivos): a string inclui o caminho do sistema de arquivos virtual (nome completo do arquivo compactado ou nome do plugin WFX com "wfx://") e o nome completo do arquivo relativo à raiz do sistema de arquivos virtual.
Se vários arquivos estiverem selecionados, essas variáveis retornarão os valores de todos os arquivos selecionados em uma linha. Para obter sempre o valor do arquivo sob o cursor, podemos usar o sufixo numerado 0.
Após as letras das variáveis acima, podemos adicionar outra letra para especificar com mais precisão o que queremos usar.
Para cada variável, o exemplo assume:
O painel esquerdo aponta para o arquivo "C:\PastaEsquerda\Arquivo.lft"
O painel direito aponta para "C:\PastaDireita\Arquivo.rgh"
O painel ativo atual é o painel direito.
| Sufixos Básicos | |
|---|---|
| Sufixo | Significado |
s |
Painel de origem ou ativo (seja esquerda ou direita)Exemplo: %ps = "C:\PastaDireita\Arquivo.rgh" |
t |
Painel de destino ou inativo (seja esquerda ou direita)Exemplo: %pt = "C:\PastaEsquerda\Arquivo.lft" |
l |
Painel esquerdoExemplo: %pl = "C:\PastaEsquerda\Arquivo.lft" |
r |
Painel direitoExemplo: %pr = "C:\PastaDireita\Arquivo.rgh" |
|
p |
Ambos os painéis, painel ativo primeiro, depois um espaço e o painel inativoExemplo: %pp = "C:\PastaDireita\Arquivo.rgh" "C:\PastaEsquerda\Arquivo.lft" |
b |
Ambos os painéis, painel esquerdo primeiro, depois um espaço e o painel direitoExemplo: %pb = "C:\PastaEsquerda\Arquivo.lft" "C:\PastaDireita\Arquivo.rgh" |
Se tivermos vários arquivos selecionados atualmente, podemos adicionar um sufixo numerado aos sufixos mencionados anteriormente para especificar exatamente qual arquivo usar.
Para cada elemento na tabela, assumimos que o painel de origem aponta para "C:\temp\" e que selecionamos vinte arquivos, de "ArquivoA.txt", "ArquivoB.txt", etc., até "ArquivoZ.txt".
| Sufixos Numerados | |
|---|---|
| Sufixo | Significado |
0 |
O arquivo sob o cursorExemplo: %ps0 = "C:\temp\ArquivoY.txt" |
1 |
Primeiro arquivo selecionadoExemplo: %ps1 = "C:\temp\ArquivoA.txt" |
2 |
Segundo arquivo selecionadoExemplo: %ps2 = "C:\temp\ArquivoB.txt" |
3 |
Terceiro arquivo selecionadoExemplo: %ps3 = "C:\temp\ArquivoC.txt" |
21 |
Vigésimo primeiro arquivo selecionadoExemplo: %ps21 = "C:\temp\ArquivoU.txt" |
Às vezes, ao passar parâmetros para um executável, precisamos incluir algo antes do nome do arquivo.
Outras vezes, queremos incluir algo antes e depois do nome do arquivo.
Observe que o seguinte será aplicado a cada item selecionado.
Para cada elemento na tabela, assumimos que selecionamos três arquivos em "C:\Windows\Fonts": "courrier.ttf", "fixedsys.ttf" e "terminal.ttf".
| Prefixo e Sufixo | |
|---|---|
| Prefixo e Sufixo | Significado |
{} |
Um par de chaves fará com que o texto entre as chaves seja adicionado antes de cada item selecionadoExemplo: %fs{+} = "+courrier.ttf" "+fixedsys.ttf" "+terminal.ttf" |
{}{} |
Dois pares de chaves farão com que o texto entre as chaves seja colocado antes e depois de cada item selecionado, respectivamente.Exemplo: %fs{[}{]} = "[courrier.ttf]" "[fixedsys.ttf]" "[terminal.ttf]" |
Anteriormente, indicamos variáveis relacionadas ao item selecionado atualmente no painel.
Mas também podemos usar a variável %D para nos referirmos ao nome do diretório do painel.
Para esta variável, podemos adicionar as mesmas letras de sufixo acima para especificar a qual painel queremos nos referir.
Para cada variável, o exemplo assume:
O painel esquerdo está em "C:\Referencia"
O painel direito aponta para "E:\Trabalho"
O painel ativo atual é o painel direito.
| Caminhos dos Painéis | |
|---|---|
| Variável | Significado |
%D |
Usada sozinha, sem sufixo, retornará o caminho do painel ativo atualExemplo: "E:\Trabalho" |
%Ds |
Diretório do painel ativo ou de origem (seja esquerda ou direita)Exemplo: "E:\Trabalho" |
%Dt |
Diretório do painel inativo ou de destino (seja esquerda ou direita)Exemplo: "C:\Referencia" |
%Dl |
Diretório do painel esquerdoExemplo: "C:\Referencia" |
%Dr |
Diretório do painel direitoExemplo: "E:\Trabalho" |
%Z |
Usada sozinha, sem sufixo, retornará o nome do último diretório do caminho do painel ativo atualExemplo: "Trabalho" |
%Zs |
Nome do último diretório do caminho do painel ativo atual (seja esquerda ou direita)Exemplo: "Trabalho" |
%Zt |
Nome do último diretório do caminho do painel inativo (seja esquerda ou direita)Exemplo: "Referencia" |
%Zl |
Nome do último diretório do caminho do painel esquerdoExemplo: "Referencia" |
%Zr |
Nome do último diretório do caminho do painel direitoExemplo: "Trabalho" |
A variável %A pode ser usada em sistemas de arquivos virtuais (arquivos compactados abertos ou plugins de sistema de arquivos): nome completo do arquivo compactado ou nome do plugin WFX com "wfx://".
Como você viu anteriormente, por razões históricas e tradicionais, o DC retornará resultados entre aspas.
Inicialmente, isso era útil quando havia espaços nos nomes dos arquivos e queríamos passá-los como parâmetros, garantindo que todo o processo funcionasse corretamente.
Mas com a adição de novas variáveis, ficou claro que precisávamos de uma maneira de obter resultados sem aspas. Um exemplo básico é quando queremos concatenar o nome de um arquivo de origem, mas apenas o nome sem extensão, e depois adicionar uma nova extensão especificada por nós mesmos.
Portanto, em vez de adicionar novas variáveis para retornar o mesmo conteúdo mas sem aspas, podemos usar as mesmas variáveis mas simplesmente prefixar a linha de parâmetros com algo como %"0 para indicar ao DC que, a partir de agora e até o final da avaliação da linha, não deve colocar aspas nos resultados.
Basicamente temos:
%"0 : a partir desta posição, os nomes de arquivos gerados não terão aspas%"1 : a partir desta posição, os nomes de arquivos gerados terão aspas%" : também aceito, restaura o valor padrão, ou seja, resultados com aspasA tabela abaixo fornece um exemplo onde selecionamos um arquivo chamado "Lista de Clientes.mdb" e os resultados de várias combinações de strings com/sem aspas.
| Exemplos com aspas ou não | |
|---|---|
| Expressão | Resultado |
%o.zip |
"Lista de Clientes".zip |
%"0%o.zip |
Lista de Clientes.zip |
%"0"%o.zip" |
"Lista de Clientes.zip" |
%"0"%o.zip" %"1%f |
"Lista de Clientes.zip" "Lista de Clientes.mdb" |
Como visto anteriormente, por razões históricas e tradicionais, quando o DC retorna um caminho, ele o faz sem o separador de caminho final.
Isso pode ser alterado usando uma variável que determinará se as variáveis de caminho na linha seguinte incluirão o separador de caminho final ou não.
Basicamente temos:
%/0 : os caminhos retornados não terão separador final%/1 : os caminhos retornados terão separador final%/ : também aceito, por padrão, os caminhos retornados não terão separador finalA tabela abaixo fornece um exemplo onde selecionamos o diretório "C:\Users\NomeUsuario\Desktop" e os resultados de várias combinações de variáveis de caminho finais:
| Exemplos de variável de caminho final | |
|---|---|
| Expressão | Resultado |
%D |
"C:\Users\NomeUsuario\Desktop" |
%/0%D |
"C:\Users\NomeUsuario\Desktop" |
%/1%D |
"C:\Users\NomeUsuario\Desktop\" |
%/%D |
"C:\Users\NomeUsuario\Desktop" |
Esta variável é útil quando combinamos nomes a partir de várias variáveis. Por exemplo, no Windows, %Dt\%f0 (adicionando manualmente o separador de diretório) em vez de %/1%Dt%f0 funcionará corretamente dentro de um diretório, mas retornará um caminho incorreto com dois separadores após a letra da unidade se a raiz da unidade estiver aberta no painel inativo.
Alguns aplicativos aceitam um único nome de arquivo como parâmetro e assumem que esse arquivo é um arquivo de texto contendo uma lista de nomes de arquivos.
O Double Commander fornece variáveis que criarão um arquivo de texto temporário no diretório de arquivos temporários, contendo a lista de todos os itens selecionados especificados, e substituirão a variável pelo nome do arquivo temporário criado.
| Variáveis de Lista de Arquivos | |
|---|---|
| Expressão | Descrição |
%L |
Nome do arquivo com a lista de nomes de arquivos completos (caminho+nome) dos itens selecionados |
%F |
Nome do arquivo com a lista apenas dos nomes de arquivos dos itens selecionados |
%R |
Nome do arquivo com a lista apenas dos nomes de caminhos relativos dos itens selecionados |
O Double Commander usará a codificação ANSI do sistema no Windows ou a codificação padrão do sistema em sistemas tipo Unix (geralmente UTF-8 em distribuições GNU/Linux).
Ao fechar, o Double Commander exclui todos esses arquivos temporários.
Por padrão, os nomes de arquivos nas listas mencionadas acima não têm aspas. Mas você pode adicionar um sufixo para mudar isso, se necessário.
Além disso, existem sufixos para especificar se você deseja que esta lista de arquivos seja codificada em UTF8 ou UTF16.
| Sufixos para Variáveis de Lista de Arquivos | |
|---|---|
| Expressão | Descrição |
Q |
Os nomes de arquivos na lista estarão entre aspas |
U |
A lista será codificada no formato UTF8 |
W |
A lista será codificada no formato UTF16 |
Você também pode adicionar outro sufixo usando as mesmas letras de sufixo mencionadas anteriormente para especificar de qual painel a lista de arquivos é necessária.
Aqui estão exemplos possíveis:
| Combinação de Sufixos para Variáveis de Lista de Arquivos | |
|---|---|
| Expressão | Descrição |
%LQt |
Nomes de arquivos completos, entre aspas, dos arquivos selecionados no painel de destino |
%FUs |
Apenas nomes de arquivos, formato UTF8, dos arquivos selecionados no painel de origem |
%RQW |
Nomes de caminhos relativos, entre aspas, formato UTF16, dos arquivos no painel de origem (padrão) |
Você pode especificar nos parâmetros se deseja que a linha de comando configurada seja executada em um terminal.
Para isso, você usará a variável %t.
| Executar no Terminal | |
|---|---|
| Expressão | Descrição |
%t0 |
Executar no terminal e solicitar fechamento ao final |
%t1 |
Executar no terminal e mantê-lo aberto ao final |
Aqui estão duas variáveis úteis para mostrar mensagens e solicitar parâmetros ao usuário em tempo de execução, com um valor padrão sugerido:
| Interação | |
|---|---|
| Expressão | Descrição |
%[mensagem a mostrar] |
Uma caixa de mensagem mostrará o texto especificado entre os colchetes |
%[mensagem;valor_padrao] |
Solicitará ao usuário um valor, oferecendo um valor padrão |
Exemplos de interação:
| Exemplos de Interação | |
|---|---|
| Expressão | Descrição |
%[Certifique-se de que EsteArquivo.ext esteja fechado!] |
Mostrará a mensagem "Certifique-se de que EsteArquivo.ext esteja fechado!" antes de realizar a ação. |
%[Insira o valor de LARGURA para conversão de imagem;1024] |
Solicitará um valor ao usuário, exibindo o texto "Insira o valor de LARGURA para conversão de imagem", com o valor 1024 sugerido por padrão, mas o usuário pode digitar outro. O que o usuário digitar substituirá o conteúdo onde a expressão "%[consulta;padrao]" estava na linha de comando. |
Nesta última seção, apresentamos variáveis que ainda não foram abordadas.
| Outras Variáveis | |
|---|---|
| Expressão | Descrição |
%% |
Será substituída simplesmente por um único símbolo % |
%# |
A partir desta posição, o símbolo # será tratado como % |
#% |
A partir do estado anterior, fará com que % seja tratado como prefixo de variável |
%? |
Mostrará a linha de comando prestes a ser executada. |
O uso de %% é quando precisamos ter o símbolo % nos parâmetros, mas não queremos que ele seja substituído por outra coisa, pois pode ser seguido por uma letra formando uma variável válida.
A variável %? é particularmente útil ao configurar um novo botão de ferramenta para garantir que você saiba o que será usado como parâmetros de substituição.
Com %?, o DC permite que você veja o comando real e os parâmetros usados para iniciar algo.
Além disso, você pode até mudar algo no último minuto ao iniciar. Isso é especialmente útil quando você não tem certeza dos parâmetros a serem passados para o aplicativo de destino.
Às vezes, a combinação do símbolo de porcentagem e uma letra de variável pode entrar em conflito com as variáveis do sistema.
Por exemplo, se você digitar %os%ot pensando que será substituído pela simples concatenação das extensões de arquivos dos painéis ativo e inativo, você pode se surpreender ao descobrir que isso pode não funcionar no Windows.
A sequência %os% geralmente seria substituída pelo nome do sistema operacional, pois %os% é uma variável de sistema que representa o nome do sistema operacional.
É aí que o %# é útil.
Em tal exemplo, você digitaria %##os#ot.
O %# instrui o DC que, a partir de agora, # é agora o equivalente ao símbolo de porcentagem para que não haja conflito com possíveis variáveis de sistema.
Isso raramente é necessário, mas se for, você ficará feliz em saber que existe! E então, se necessário, #% restaurará % como o prefixo de porcentagem real para as variáveis.
Nada novo nesta seção, mas vamos resumir todas as variáveis suportadas e seus significados em uma única tabela.
| Resumo das Variáveis | |
|---|---|
| Expressão | Descrição |
%p | Nome completo do arquivo, incluindo o caminho |
%f | Apenas nome do arquivo, incluindo extensão |
%d | Apenas o caminho |
%z | Último diretório no caminho |
%o | Apenas nome do arquivo, sem extensão |
%e | Apenas extensão do arquivo, sem o ponto |
%v | Nome do arquivo relativo ao diretório ativo atual |
s | Sufixo para o painel de origem ou ativo (Exemplo: %ps) |
t | Sufixo para o painel de destino ou inativo (Exemplo: %pt) |
l | Sufixo para o painel esquerdo (Exemplo: %pl) |
r | Sufixo para o painel direito (Exemplo: %pr) |
p | Sufixo para ambos os painéis, ativo primeiro, inativo depois (Exemplo: %pp) |
b | Sufixo para ambos os painéis, esquerdo primeiro, direito depois (Exemplo: %pb) |
0 | Arquivo sob o cursor (Exemplo: %ps0) |
1 | Primeiro arquivo selecionado (Exemplo: %ps1) |
2 | Segundo arquivo selecionado (Exemplo: %ps2) |
3 | Terceiro arquivo selecionado (Exemplo: %ps3) |
21 | Vigésimo primeiro arquivo selecionado (Exemplo: %ps21) |
{prefixo} | {} usado uma vez definirá um prefixo para adicionar antes do nome do arquivo (Exemplo: %f{+}) |
{prefixo}{sufixo} | {} usado duas vezes definirá prefixo e sufixo antes e depois do nome do arquivo (Exemplo: %f{[}{]}) |
%D | Por padrão, caminho do painel ativo (origem) |
%Ds | Especifica particularmente o caminho do painel ativo (origem) |
%Dt | Caminho do painel inativo (destino) |
%Dl | Caminho do painel esquerdo, independentemente de qual está ativo |
%Dr | Caminho do painel direito, independentemente de qual está ativo |
%Z | Por padrão, nome do último diretório do caminho do painel ativo (origem) |
%Zs | Especifica particularmente o nome do último diretório do caminho do painel ativo (origem) |
%Zt | Nome do último diretório do caminho do painel inativo (destino) |
%Zl | Nome do último diretório do caminho do painel esquerdo, independentemente de qual está ativo |
%Zr | Nome do último diretório do caminho do painel direito, independentemente de qual está ativo |
%"0 | A partir desta posição, os nomes de arquivos gerados não terão aspas |
%"1 | A partir desta posição, os nomes de arquivos gerados terão aspas |
%" | Também aceito, faz com que os nomes gerados tenham aspas novamente |
%/0 | Por padrão, caminhos retornados não terão separador final |
%/1 | Caminhos retornados terão separador final |
%/ | Também aceito, por padrão, caminhos retornados não terão separador final |
%L | Nome do arquivo com lista de itens selecionados, contendo apenas caminhos completos (caminho+nome) |
%F | Nome do arquivo com lista de itens selecionados, contendo apenas nomes de arquivos |
%R | Nome do arquivo com lista de itens selecionados, contendo apenas caminhos relativos |
Q | Sufixo para %L, %F ou %R para solicitar nomes de arquivos entre aspas |
U | Sufixo para %L, %F ou %R para solicitar lista no formato UTF8 |
W | Sufixo para %L, %F ou %R para solicitar lista no formato UTF16 |
%t0 | Executar no terminal e solicitar fechamento ao final |
%t1 | Executar no terminal e mantê-lo aberto ao final |
%[mensagem a mostrar] | Mostra uma caixa de mensagem com o texto especificado entre colchetes |
%[mensagem;valor_padrao] | Solicita um valor ao usuário, oferecendo um valor sugerido |
%% | Substituído simplesmente por um único símbolo % |
%# | A partir desta posição, o símbolo # será tratado como % |
#% | A partir do estado anterior, faz com que % seja tratado como prefixo de variável |
%? | Mostrará a linha de comando prestes a ser executada |
Podemos usar variáveis de ambiente nas configurações do Double Commander: em nomes de executáveis e ícones na barra de ferramentas, nomes de plugins, diretórios favoritos, etc. É uma maneira conveniente de especificar caminhos se não quisermos usar caminhos absolutos.
O Double Commander suporta variáveis de ambiente do sistema e fornece algumas próprias:
| Variáveis de Ambiente | |
|---|---|
| Variável | Descrição |
%COMMANDER_EXE% |
Nome completo do executável do Double Commander (caminho + nome do arquivo) (links simbólicos serão substituídos pelo arquivo real) |
%COMMANDER_PATH% |
Diretório onde o executável do Double Commander está localizado |
%COMMANDER_DRIVE% |
Disco onde a pasta do Double Commander está localizada: - Windows: letra da unidade (com dois pontos); - sistemas tipo Unix: ponto de montagem. |
%COMMANDER_INI% |
Nome completo do arquivo de configuração principal (doublecmd.xml) (caminho + nome do arquivo) |
%COMMANDER_INI_PATH% |
Diretório onde os arquivos de configuração do Double Commander estão localizados |
%DC_CONFIG_PATH% |
Diretório onde os arquivos de configuração do Double Commander estão localizados |
Os nomes das variáveis %COMMANDER_PATH% e %DC_CONFIG_PATH% não diferenciam maiúsculas de minúsculas e podemos usar o símbolo de porcentagem % independentemente do sistema operacional (o que é conveniente para aplicativos multiplataforma para fins de compatibilidade retroativa). No entanto, em sistemas tipo Unix, os nomes das variáveis de ambiente diferenciam maiúsculas de minúsculas e são tradicionalmente escritos em letras maiúsculas, portanto, usar a grafia tradicional pode ser uma boa prática.
No Windows, também podemos usar adicionalmente pseudo-variáveis de ambiente no formato %$Nome%, que correspondem às pastas padrão do sistema Windows (para obter o valor, o Double Commander usa as funções SHGetSpecialFolderPath e SHGetKnownFolderPath da API do Windows). Estas não são variáveis de ambiente normais e não estão disponíveis para processos filhos (aplicativos iniciados a partir do Double Commander), mas, por outro lado, podemos usá-las de maneira semelhante às variáveis de ambiente. Todas essas variáveis estão reunidas no menu do assistente de seleção de caminho: à direita dos botões de seleção de arquivo ou diretório está o botão Algumas funções para selecionar caminhos apropriados
, a descrição pode ser encontrada aqui.
Todas essas variáveis foram adicionadas ao menu Lista de diretórios favoritos (submenu Diretórios especiais).
Criado originalmente por Rustem (dok_rust@bk.ru)