As variáveis nos ajudarão ao configurar botões da barra de ferramentas ou ao definir ações de associações de arquivos e teclas de atalho.
Basicamente, usaremos essas variáveis quando precisarmos fornecer argumentos a um comando com base nos arquivos atualmente selecionados, no diretório em que estamos e outras informações contextuais relacionadas ao que é exibido nos painéis.
Aqui está um exemplo simples. Um usuário configurou um botão para iniciar o IrfanView e usa a variável %p como parâmetro.

Quando o usuário clicar naquele botão, ele iniciará o IrfanView e substituirá 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 um sinal 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 serão escapados automaticamente: cercados por aspas duplas no Windows, ou precedidos por "\" para caracteres especiais em sistemas do tipo Unix. Se você precisar do resultado sem aspas, veja a seção Se o resultado deve estar entre aspas.
Para cada variável, o exemplo assume que estamos apontando para o arquivo C:\Users\UserName\Desktop\comentario.png.
| Variáveis básicas | |
|---|---|
| Variável | Significado |
%p |
Nome completo do arquivo, caminho + nome do arquivoExemplo: %p = "C:\Users\UserName\Desktop\comentario.png" |
%f |
Apenas o nome do arquivo, incluindo a extensãoExemplo: %f = "comentario.png" |
%d |
Apenas o caminho, sem o delimitador de diretório finalExemplo: %d = "C:\Users\UserName\Desktop" |
%z |
O nome do último diretório no caminhoExemplo: %z = "Desktop" |
%o |
Apenas o nome do arquivo, sem a extensãoExemplo: %o = "comentario" |
%e |
Apenas a 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 em modo de visão plana a partir do diretório "C:\Users\UserName", %v resultaria 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 para o 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 forem selecionados, essas variáveis retornarão os valores para todos os projetos selecionados em uma linha. Para obter sempre o valor do arquivo sob o cursor, podemos usar o sufixo numerado 0.
Podemos adicionar outra letra após a letra da variável mencionada acima 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 (esteja ele no lado esquerdo ou direito)Exemplo: %ps = "C:\PastaDireita\Arquivo.rgh" |
t |
Painel de destino ou inativo (esteja ele no lado esquerdo ou direito)Exemplo: %pt = "C:\PastaEsquerda\Arquivo.lft" |
l |
Painel do lado esquerdoExemplo: %pl = "C:\PastaEsquerda\Arquivo.lft" |
r |
Painel do lado direitoExemplo: %pr = "C:\PastaDireita\Arquivo.rgh" |
|
p |
Ambos os painéis, o ativo primeiro, depois um espaço e em seguida o inativoExemplo: %pp = "C:\PastaDireita\Arquivo.rgh" "C:\PastaEsquerda\Arquivo.lft" |
b |
Ambos os painéis, o esquerdo primeiro, depois um espaço e em seguida o direitoExemplo: %pb = "C:\PastaEsquerda\Arquivo.lft" "C:\PastaDireita\Arquivo.rgh" |
Se tivermos vários arquivos selecionados no momento, podemos adicionar um sufixo numerado aos sufixos mencionados anteriormente para especificar exatamente qual arquivo queremos usar.
Para cada elemento na tabela, assumimos que o painel de origem aponta para "C:\temp\" e 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 |
O primeiro arquivo selecionadoExemplo: %ps1 = "C:\temp\ArquivoA.txt" |
2 |
O segundo arquivo selecionadoExemplo: %ps2 = "C:\temp\ArquivoB.txt" |
3 |
O terceiro arquivo selecionadoExemplo: %ps3 = "C:\temp\ArquivoC.txt" |
21 |
O vigésimo primeiro arquivo selecionadoExemplo: %ps21 = "C:\temp\ArquivoU.txt" |
Às vezes, quando passamos argumentos a um executável, precisamos incluir algo antes do nome do arquivo.
Às vezes queremos incluir algo antes e depois do nome do arquivo.
Esteja ciente de que o seguinte será aplicado a cada item selecionado.
Para cada elemento na tabela, assumimos que estamos atualmente em "C:\Windows\Fonts" com três arquivos selecionados, "courrier.ttf", "fixedsys.ttf" e "terminal.ttf".
| Prefixos e sufixos | |
|---|---|
| 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 as variáveis relacionadas ao item atualmente selecionado dentro de um painel.
Mas também podemos usar a variável %D para dizer que queremos referenciar o nome do diretório do painel.
Para essa variável, podemos adicionar as mesmas letras de sufixo de antes para especificar exatamente qual painel queremos referenciar.
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 do painel | |
|---|---|
| Variável | Significado |
%D |
Usado sozinho, sem sufixo, retornará o caminho do painel ativo atualExemplo: "E:\Trabalho" |
%Ds |
O diretório do painel ativo ou de origem atual (esteja ele no lado esquerdo ou direito)Exemplo: "E:\Trabalho" |
%Dt |
O diretório do painel inativo ou de destino (esteja ele no lado esquerdo ou direito)Exemplo: "C:\Referencia" |
%Dl |
O diretório do painel do lado esquerdoExemplo: "C:\Referencia" |
%Dr |
O diretório do painel do lado direitoExemplo: "E:\Trabalho" |
%Z |
Usado sozinho, sem sufixo, retornará o nome do último diretório do caminho do painel ativo atualExemplo: "Trabalho" |
%Zs |
O nome do último diretório do caminho do painel ativo atual (esteja ele no lado esquerdo ou direito)Exemplo: "Trabalho" |
%Zt |
O nome do último diretório do caminho do painel inativo atual (esteja ele no lado esquerdo ou direito)Exemplo: "Referencia" |
%Zl |
O nome do último diretório do caminho do painel do lado esquerdoExemplo: "Referencia" |
%Zr |
O nome do último diretório do caminho do painel do lado 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á o resultado entre aspas.
Isso era útil originalmente quando tínhamos nomes de arquivos com espaços e queríamos passar o nome do arquivo como parâmetro e que todo o processo funcionasse corretamente.
Mas com as novas variáveis adicionadas, ficou claro que precisávamos de uma maneira de obter o resultado sem aspas. Um exemplo básico é quando queremos concatenar um nome de arquivo de origem, mas apenas o nome sem a extensão, e então adicionar nossa própria nova extensão que especificamos.
Assim, em vez de adicionar novas variáveis que retornariam o mesmo, mas sem as aspas, ainda podemos usar as mesmas variáveis com o mesmo significado, mas simplesmente pré-configurar algo como %"0 na linha de parâmetros para indicar ao DC que a partir de agora, na avaliação do resto da linha, não coloque as aspas no resultado.
Basicamente teremos:
%"0 : a partir deste ponto, nomes de arquivos gerados NÃO estarão entre aspas%"1 : a partir deste ponto, nomes de arquivos gerados estarão entre aspas%" : também aceito, reverte para o padrão, ou seja, resultado entre aspasA tabela abaixo dá um exemplo onde selecionamos um arquivo chamado "Lista de Clientes.mdb" e o resultado 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 você viu anteriormente, por razões históricas e tradicionais, quando o DC retorna um caminho, ele o fará sem o delimitador de caminho final.
Isso pode ser alterado usando uma variável que determinará se as variáveis de caminho no resto da linha terão o delimitador de caminho final ou não.
Basicamente temos:
%/0 : caminhos retornados NÃO terão delimitador final%/1 : caminhos retornados TERÃO delimitador final%/ : também aceito, por padrão, caminhos retornados NÃO terão delimitador finalA tabela abaixo dá um exemplo onde selecionamos o diretório "C:\Usuarios\NomeUsuario\Desktop" e o resultado de várias combinações para a variável de caminho final:
| Exemplos de variável de caminho final | |
|---|---|
| Expressão | Resultado |
%D |
"C:\Usuarios\NomeUsuario\Desktop" |
%/0%D |
"C:\Usuarios\NomeUsuario\Desktop" |
%/1%D |
"C:\Usuarios\NomeUsuario\Desktop\" |
%/%D |
"C:\Usuarios\NomeUsuario\Desktop" |
Esta variável é útil quando compomos um nome a partir de várias variáveis. Por exemplo, no Windows, %Dt\%f0 (adicionando manualmente o delimitador de diretório) em vez de %/1%Dt%f0 funcionará corretamente dentro de diretórios, mas se a raiz de um drive estiver aberta no painel inativo, o Double Commander retornará um caminho incorreto com dois delimitadores de diretório após a letra do drive.
Algumas aplicações aceitarão como parâmetro um único nome de arquivo e assumirão que o arquivo é um arquivo de texto contendo uma lista de nomes de arquivos.
O Double Commander fornece variáveis que criarão no diretório de arquivos temporários um arquivo de texto temporário 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 para a lista de nomes de arquivos completos (caminho + nome do arquivo) dos itens selecionados |
%F |
Nome do arquivo para a lista de apenas nomes de arquivos dos itens selecionados |
%R |
Nome do arquivo para a lista de apenas 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 do 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 mencionados acima dentro da lista estão sem 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 |
Nomes de arquivos dentro da 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 a mesma letra de sufixo mencionada anteriormente para especificar de qual painel você precisa da lista de arquivos.
Aqui estão exemplos do que é possível:
| 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 do painel de destino |
%FUs |
Apenas nomes de arquivos, formato UTF8, dos arquivos selecionados do painel de origem |
%RQW |
Nomes de arquivos com caminho relativo, entre aspas, formato UTF16, do 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.
| Execução no terminal | |
|---|---|
| Expressão | Descrição |
%t0 |
Executar em terminal e solicitar fechamento ao final |
%t1 |
Executar em terminal e manter aberto ao final |
Aqui estão duas variáveis úteis para mostrar uma mensagem 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 com o texto especificado entre os colchetes será mostrada |
%[mensagem;valor_padrao] |
Solicitará ao usuário um valor, oferecendo um padrão |
Exemplos de interação:
| Exemplos de interação | |
|---|---|
| Expressão | Descrição |
%[Certifique-se que EsteArquivo.ext esteja fechado!] |
Exibirá a mensagem "Certifique-se que EsteArquivo.ext esteja fechado!" antes de realizar a operação. |
%[Insira o valor da LARGURA para conversão de imagem;1024] |
Solicitará ao usuário um valor, mostrando o texto "Insira o valor da LARGURA para conversão de imagem", sugerindo por padrão 1024, mas o usuário pode digitar outra coisa. O que o usuário digitar substituirá o que a expressão "%[pergunta;padrao]" ocupa na linha de comando. |
Nesta última seção, mostramos variáveis que ainda não foram apresentadas.
| Variáveis diversas | |
|---|---|
| Expressão | Descrição |
%% |
Será substituído simplesmente por um único sinal de % |
%# |
A partir deste ponto, o sinal # será tratado como um % |
#% |
A partir do estado anterior, fará com que % seja tratado como o prefixo de variável |
%? |
Exibirá a linha de comando prestes a ser executada. |
O uso de %% é quando precisamos ter um sinal de % nos parâmetros, mas não queremos que ele seja substituído por outra coisa porque pode ser seguido por uma letra que formaria uma variável real válida.
A variável %? é particularmente útil ao configurar um novo botão de ferramenta para ter certeza de entender o que será usado como parâmetro de substituição.
Com %?, o DC permite que você veja o comando e os parâmetros reais usados para iniciar algo.
Não só isso, você pode até mudar algo no último minuto ao iniciar.
Isso é particularmente útil quando você não tem certeza dos parâmetros a passar para a aplicação de destino.
Às vezes, a combinação do sinal de porcentagem e da letra da variável pode entrar em conflito com as variáveis do sistema.
Por exemplo, se você digitar %os%ot pensando que isso será substituído pela concatenação simples das extensões de arquivos dos painéis ativo e inativo, você pode se surpreender ao ver que isso pode não funcionar no Windows.
A sequência %os% geralmente é substituída pelo nome do sistema operacional, já que %os% é a variável do sistema que o representa.
É aí que %# é útil.
Em tal tipo de exemplo, você digitaria %##os#ot.
O %# instrui o DC que a partir de agora, o # é agora o equivalente do sinal de porcentagem, para que não entre em conflito com possíveis variáveis do sistema.
Raramente necessário, mas se for, você ficará feliz em saber que existe!
E então, se necessário, o #% restaurará o % como o prefixo de porcentagem real para as variáveis.
Nada novo nesta seção, mas vamos reunir todas as variáveis suportadas e seus significados em uma tabela.
| Resumo das variáveis | |
|---|---|
| Expressão | Descrição |
%p | Nome completo do arquivo, incluindo o caminho |
%f | Apenas o nome do arquivo, incluindo a extensão |
%d | Apenas o caminho |
%z | O último diretório no caminho |
%o | Apenas o nome do arquivo, sem a extensão |
%e | Apenas a extensão do arquivo, sem o ponto |
%v | Nome do arquivo relativo ao diretório ativo atual |
s | Sufixo para painel de origem ou ativo (Exemplo: %ps) |
t | Sufixo para painel de destino ou inativo (Exemplo: %pt) |
l | Sufixo para painel do lado esquerdo (Exemplo: %pl) |
r | Sufixo para painel do lado direito (Exemplo: %pr) |
p | Sufixo para ambos os painéis, ativo primeiro e inativo depois (Exemplo: %pp) |
b | Sufixo para ambos os painéis, esquerdo primeiro e direito depois (Exemplo: %pb) |
0 | Arquivo sob o cursor (Exemplo: %ps0) |
1 | O primeiro arquivo selecionado (Exemplo: %ps1) |
2 | O segundo arquivo selecionado (Exemplo: %ps2) |
3 | O terceiro arquivo selecionado (Exemplo: %ps3) |
21 | O vigésimo primeiro arquivo selecionado (Exemplo: %ps21) |
{prefixo} | {} usado uma vez, definirá o prefixo para adicionar antes do nome do arquivo (ex: %f{+}) |
{prefixo}{sufixo} | {} usado duas vezes, definirá o prefixo e o sufixo, respectivamente antes e depois do nome do arquivo (ex: %f{[}{]}) |
%D | Caminho do painel ativo (origem) por padrão |
%Ds | Especifica especificamente o caminho do painel ativo (origem) |
%Dt | Caminho do painel inativo (destino) |
%Dl | Caminho do painel do lado esquerdo, independentemente de qual esteja ativo |
%Dr | Caminho do painel do lado direito, independentemente de qual esteja ativo |
%Z | Nome do último diretório do caminho do painel ativo (origem) por padrão |
%Zs | Especifica especificamente 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 do lado esquerdo, independentemente de qual esteja ativo |
%Zr | Nome do último diretório do caminho do painel do lado direito, independentemente de qual esteja ativo |
%"0 | A partir deste ponto, nomes de arquivos gerados NÃO estarão entre aspas |
%"1 | A partir deste ponto, nomes de arquivos gerados estarão entre aspas |
%" | Também aceito, faz com que nomes de arquivos gerados estejam entre aspas novamente |
%/0 | Por padrão, caminhos retornados NÃO terão delimitador final |
%/1 | Caminhos retornados TERÃO delimitador final |
%/ | Também aceito, por padrão, caminhos retornados NÃO terão delimitador final |
%L | Nome do arquivo para a lista de itens selecionados, contendo apenas o nome completo do arquivo (caminho + nome do arquivo) |
%F | Nome do arquivo para a lista de itens selecionados, contendo apenas o nome do arquivo |
%R | Nome do arquivo para a lista de itens selecionados, contendo apenas nomes de 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 que o arquivo de lista esteja no formato UTF8 |
W | Sufixo para %L, %F ou %R para solicitar que o arquivo de lista esteja no formato UTF16 |
%t0 | Executar em terminal e solicitar fechamento ao final |
%t1 | Executar em terminal e manter aberto ao final |
%[mensagem a mostrar] | Caixa de mensagem com o texto especificado entre os colchetes será mostrada |
%[mensagem;valor_padrao] | Solicitará ao usuário um valor e fornecerá um sugerido |
%% | Será substituído simplesmente por um único sinal de % |
%# | A partir deste ponto, o sinal # será tratado como um % |
#% | A partir do estado anterior, fará com que % seja tratado como o prefixo de variável |
%? | Exibirá a linha de comando prestes a ser executada |
Podemos usar variáveis de ambiente nas configurações do Double Commander: no nome do executável e no ícone na barra de ferramentas, nos nomes dos plugins, nos diretórios favoritos etc. É uma maneira conveniente de especificar o caminho se não quisermos usar caminhos absolutos.
O Double Commander suporta variáveis de ambiente do sistema e fornece algumas de suas 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% |
O diretório onde o executável do Double Commander está localizado |
%COMMANDER_DRIVE% |
O disco onde a pasta do Double Commander está localizada: - Windows: letra do drive (com dois pontos); - sistemas do tipo Unix: ponto de montagem. |
%COMMANDER_INI% |
Nome completo do arquivo de configuração principal (doublecmd.xml) (caminho + nome do arquivo) |
%COMMANDER_INI_PATH% |
O diretório onde os arquivos de configuração do Double Commander estão localizados |
%DC_CONFIG_PATH% |
O 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 sinais de porcentagem % independentemente da família do sistema operacional (isso é feito para compatibilidade com versões anteriores, o que é conveniente para uma aplicação multiplataforma). No entanto, em sistemas do tipo Unix, os nomes das variáveis de ambiente diferenciam maiúsculas de minúsculas e são tradicionalmente escritos com letras maiúsculas, por isso pode ser um bom hábito usar a grafia tradicional.
No Windows, também podemos usar adicionalmente pseudo-variáveis de ambiente do formato %$Nome%, elas 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 (aplicações iniciadas a partir do Double Commander), mas em outros aspectos podemos usá-las de forma semelhante às variáveis de ambiente. Todas essas variáveis estão reunidas no menu auxiliar de seleção de caminho: à direita dos botões de seleção de arquivos ou diretórios está o botão Algumas funções para escolher o caminho apropriado
, a descrição está aqui.
Todas essas variáveis foram adicionadas ao menu da Lista de pastas comuns (submenu Diretórios especiais).
Criado originalmente por Rustem (dok_rust@bk.ru)