Double Commander

2.12. Variáveis nos parâmetros

Conteúdo

1. Introdução rápida
2. Variáveis de parâmetros básicas
3. Sufixos básicos
4. Sufixos numerados
5. Especificar prefixo e sufixo para cada arquivo
6. Caminhos dos painéis
7. Resultado entre aspas ou não
8. Separador no final do caminho
9. Lista de arquivos
10. Sufixos para lista de arquivos
11. Combinação de sufixos de lista de arquivos
12. Executar no terminal
13. Interação
14. Outras variáveis
15. Tabela resumo de todas as variáveis
16. Variáveis de ambiente

1. Introdução rápida

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.

Exemplo de variável

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!

2. Variáveis de parâmetros básicas

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ávelSignificado
%p
Nome completo do arquivo: caminho + nome do arquivo
Exemplo: %p = "C:\Users\NomeUsuario\Desktop\comentario.png"
%f
Apenas nome do arquivo, incluindo extensão
Exemplo: %f = "comentario.png"
%d
Apenas o caminho, sem o separador de diretório final
Exemplo: %d = "C:\Users\NomeUsuario\Desktop"
%z
Nome do último diretório no caminho
Exemplo: %z = "Desktop"
%o
Apenas nome do arquivo, sem extensão
Exemplo: %o = "comentario"
%e
Apenas extensão, sem o ponto
Exemplo: %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.

3. Sufixos básicos

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
SufixoSignificado
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 esquerdo
Exemplo: %pl = "C:\PastaEsquerda\Arquivo.lft"
r
Painel direito
Exemplo: %pr = "C:\PastaDireita\Arquivo.rgh"
p
Ambos os painéis, painel ativo primeiro, depois um espaço e o painel inativo
Exemplo: %pp = "C:\PastaDireita\Arquivo.rgh" "C:\PastaEsquerda\Arquivo.lft"
b
Ambos os painéis, painel esquerdo primeiro, depois um espaço e o painel direito
Exemplo: %pb = "C:\PastaEsquerda\Arquivo.lft" "C:\PastaDireita\Arquivo.rgh"

4. Sufixos numerados

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
SufixoSignificado
0
O arquivo sob o cursor
Exemplo: %ps0 = "C:\temp\ArquivoY.txt"
1
Primeiro arquivo selecionado
Exemplo: %ps1 = "C:\temp\ArquivoA.txt"
2
Segundo arquivo selecionado
Exemplo: %ps2 = "C:\temp\ArquivoB.txt"
3
Terceiro arquivo selecionado
Exemplo: %ps3 = "C:\temp\ArquivoC.txt"
21
Vigésimo primeiro arquivo selecionado
Exemplo: %ps21 = "C:\temp\ArquivoU.txt"

5. Especificar prefixo e sufixo para cada arquivo

À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 SufixoSignificado
{}
Um par de chaves fará com que o texto entre as chaves seja adicionado antes de cada item selecionado
Exemplo: %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]"

6. Caminhos dos painéis

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ávelSignificado
%D
Usada sozinha, sem sufixo, retornará o caminho do painel ativo atual
Exemplo: "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 esquerdo
Exemplo: "C:\Referencia"
%Dr
Diretório do painel direito
Exemplo: "E:\Trabalho"
%Z
Usada sozinha, sem sufixo, retornará o nome do último diretório do caminho do painel ativo atual
Exemplo: "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 esquerdo
Exemplo: "Referencia"
%Zr
Nome do último diretório do caminho do painel direito
Exemplo: "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://".

7. Resultado entre aspas ou não

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 aspas

A 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ãoResultado
%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"

8. Separador no final do caminho

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 final

A 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ãoResultado
%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.

9. Lista de arquivos

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ãoDescriçã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.

10. Sufixos para lista de arquivos

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ãoDescriçã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

11. Combinação de sufixos de lista de arquivos

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ãoDescriçã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)

12. Executar no terminal

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ãoDescrição
%t0
Executar no terminal e solicitar fechamento ao final
%t1
Executar no terminal e mantê-lo aberto ao final

13. Interação

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ãoDescriçã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ãoDescriçã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.

14. Outras variáveis

Nesta última seção, apresentamos variáveis que ainda não foram abordadas.

Outras Variáveis
ExpressãoDescriçã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.

15. Tabela resumo de todas 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ãoDescriçã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

16. Variáveis de ambiente

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ávelDescriçã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 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)

HTML 4.0 Transitional Válido CSS Válido!