Les variables nous aideront lors de la configuration des boutons de la barre d'outils ou lors de la définition d'actions d'associations de fichiers et de raccourcis clavier.
Nous utiliserons ces variables essentiellement lorsque nous aurons besoin de fournir des paramètres à une commande en fonction du fichier actuellement sélectionné, du répertoire où nous nous trouvons et d'autres informations contextuelles liées à ce qui est affiché dans les panneaux.
Voici un exemple simple. Un utilisateur a configuré un bouton pour lancer IrfanView et utilise la variable %p comme paramètre.

Lorsque l'utilisateur cliquera sur ce bouton, il lancera IrfanView et la variable %p sera remplacée par le fichier actuellement sélectionné dans le panneau actif.
C'est ce que signifient les variables décrites sur cette page.
Comme vous le verrez, la plupart des variables commencent par un signe de pourcentage %.
Attention : les variables et les suffixes sont sensibles à la casse !
Voici les variables de base utilisables, liées à la sélection actuelle.
Par défaut, les valeurs des variables contenant des espaces et/ou des caractères spéciaux sont automatiquement échappées : la valeur est entourée de doubles guillemets sous Windows, ou un "\" est ajouté devant les caractères spéciaux sous les systèmes de type Unix. Si vous avez besoin du résultat sans guillemets, voir la section Résultat avec ou sans guillemets.
Pour chaque variable, l'exemple suppose que nous pointons vers le fichier C:\Users\NomUtilisateur\Desktop\commentaire.png.
| Variables de base | |
|---|---|
| Variable | Signification |
%p |
Nom de fichier complet, chemin + nom de fichierExemple : %p = "C:\Users\NomUtilisateur\Desktop\commentaire.png" |
%f |
Nom de fichier seulement, extension incluseExemple : %f = "commentaire.png" |
%d |
Chemin seulement, sans le séparateur de répertoire finalExemple : %d = "C:\Users\NomUtilisateur\Desktop" |
%z |
Nom du dernier répertoire dans le cheminExemple : %z = "Desktop" |
%o |
Nom de fichier seulement, sans l'extensionExemple : %o = "commentaire" |
%e |
Extension seulement, sans le pointExemple : %e = "png" |
%v |
Nom de fichier relatif au répertoire actif actuel S'applique par exemple lorsque nous appelons la commande interne cm_FlatView. Si nous sommes en vue à plat depuis le répertoire "C:\Users\NomUtilisateur", %v donnera "Desktop\commentaire.png" |
La variable %a peut être utilisée pour les systèmes de fichiers virtuels (archives ouvertes ou greffons de système de fichiers) : la chaîne inclut le chemin vers le système de fichiers virtuel (nom complet de l'archive ou nom du greffon WFX avec "wfx://") et le nom de fichier complet par rapport à la racine du système de fichiers virtuel.
Si plusieurs fichiers sont sélectionnés, ces variables renverront les valeurs de tous les fichiers sélectionnés sur une seule ligne. Pour toujours obtenir la valeur du fichier sous le curseur, nous pouvons utiliser le suffixe numéroté 0.
Après la lettre de la variable ci-dessus, nous pouvons ajouter une autre lettre pour spécifier plus précisément ce que nous voulons utiliser.
Pour chaque variable, l'exemple suppose :
Le panneau de gauche pointe vers le fichier "C:\DossierGauche\Fichier.lft"
Le panneau de droite pointe vers "C:\DossierDroit\Fichier.rgh"
Le panneau actif actuel est celui de droite.
| Suffixes de base | |
|---|---|
| Suffixe | Signification |
s |
Source ou panneau actif (qu'il soit à gauche ou à droite)Exemple : %ps = "C:\DossierDroit\Fichier.rgh" |
t |
Cible ou panneau inactif (qu'il soit à gauche ou à droite)Exemple : %pt = "C:\DossierGauche\Fichier.lft" |
l |
Panneau de gaucheExemple : %pl = "C:\DossierGauche\Fichier.lft" |
r |
Panneau de droiteExemple : %pr = "C:\DossierDroit\Fichier.rgh" |
|
p |
Les deux panneaux, le panneau actif en premier, puis un espace, suivi du panneau inactifExemple : %pp = "C:\DossierDroit\Fichier.rgh" "C:\DossierGauche\Fichier.lft" |
b |
Les deux panneaux, le panneau de gauche en premier, puis un espace, suivi du panneau de droiteExemple : %pb = "C:\DossierGauche\Fichier.lft" "C:\DossierDroit\Fichier.rgh" |
Si nous avons actuellement plusieurs fichiers sélectionnés, nous pouvons ajouter un suffixe numéroté en plus des suffixes mentionnés précédemment pour spécifier exactement quel fichier utiliser.
Pour chaque élément du tableau, nous supposons que le panneau source pointe vers "C:\temp\" et que nous avons sélectionné vingt fichiers, de "FichierA.txt", "FichierB.txt", etc. jusqu'à "FichierZ.txt".
| Suffixes numérotés | |
|---|---|
| Suffixe | Signification |
0 |
Fichier sous le curseurExemple : %ps0 = "C:\temp\FichierY.txt" |
1 |
Premier fichier sélectionnéExemple : %ps1 = "C:\temp\FichierA.txt" |
2 |
Deuxième fichier sélectionnéExemple : %ps2 = "C:\temp\FichierB.txt" |
3 |
Troisième fichier sélectionnéExemple : %ps3 = "C:\temp\FichierC.txt" |
21 |
Vingt-et-unième fichier sélectionnéExemple : %ps21 = "C:\temp\FichierU.txt" |
Parfois, lorsque nous passons des paramètres à un exécutable, nous devons inclure quelque chose avant le nom du fichier.
Parfois, nous voulons inclure quelque chose avant et après le nom du fichier.
Veuillez noter que ce qui suit sera appliqué à chaque élément sélectionné.
Pour chaque élément du tableau, nous supposons que trois fichiers sont actuellement sélectionnés dans "C:\Windows\Fonts", à savoir "courrier.ttf", "fixedsys.ttf" et "terminal.ttf".
| Préfixe et suffixe | |
|---|---|
| Préfixe et suffixe | Signification |
{} |
Une paire d'accolades entraînera l'ajout du texte entre les accolades avant chaque élément sélectionnéExemple : %fs{+} = "+courrier.ttf" "+fixedsys.ttf" "+terminal.ttf" |
{}{} |
Deux paires d'accolades entraîneront l'ajout du texte entre les accolades respectivement avant et après chaque élément sélectionné.Exemple : %fs{[}{]} = "[courrier.ttf]" "[fixedsys.ttf]" "[terminal.ttf]" |
Nous avons précédemment indiqué des variables liées aux éléments actuellement sélectionnés dans les panneaux.
Mais nous pouvons aussi utiliser la variable %D pour désigner le nom du répertoire du panneau.
Pour cette variable, nous pouvons ajouter les mêmes lettres de suffixe que précédemment pour spécifier quel panneau nous voulons référencer.
Pour chaque variable, l'exemple suppose :
Le panneau de gauche est dans "C:\Reference"
Le panneau de droite pointe vers "E:\Travail"
Le panneau actif actuel est celui de droite.
| Chemins des panneaux | |
|---|---|
| Variable | Signification |
%D |
Utilisé seul, sans suffixe, renverra le chemin du panneau actif actuelExemple : "E:\Travail" |
%Ds |
Répertoire du panneau actif ou source actuel (qu'il soit à gauche ou à droite)Exemple : "E:\Travail" |
%Dt |
Répertoire du panneau inactif ou cible (qu'il soit à gauche ou à droite)Exemple : "C:\Reference" |
%Dl |
Répertoire du panneau de gaucheExemple : "C:\Reference" |
%Dr |
Répertoire du panneau de droiteExemple : "E:\Travail" |
%Z |
Utilisé seul, sans suffixe, renverra le nom du dernier répertoire du chemin du panneau actif actuelExemple : "Travail" |
%Zs |
Nom du dernier répertoire du chemin du panneau actif actuel (qu'il soit à gauche ou à droite)Exemple : "Travail" |
%Zt |
Nom du dernier répertoire du chemin du panneau inactif actuel (qu'il soit à gauche ou à droite)Exemple : "Reference" |
%Zl |
Nom du dernier répertoire du chemin du panneau de gaucheExemple : "Reference" |
%Zr |
Nom du dernier répertoire du chemin du panneau de droiteExemple : "Travail" |
La variable %A peut être utilisée pour les systèmes de fichiers virtuels (archives ouvertes ou greffons de système de fichiers) : nom complet de l'archive ou nom du greffon WFX avec "wfx://".
Comme vous l'avez vu précédemment, pour des raisons historiques et traditionnelles, DC renverra des résultats entre guillemets.
À l'origine, c'était utile lorsque les noms de fichiers comportaient des espaces et que nous voulions passer le nom de fichier comme paramètre tout en voulant que tout le processus fonctionne normalement.
Mais avec l'ajout de nouvelles variables, il est devenu clair que nous avions besoin d'un moyen d'obtenir des résultats sans guillemets. Un exemple basique est lorsque nous voulons concaténer un nom de fichier source, mais seulement le nom de fichier sans l'extension, puis ajouter notre propre extension spécifiée.
Ainsi, au lieu d'ajouter de nouvelles variables pour renvoyer le même contenu mais sans guillemets, nous pouvons toujours utiliser les mêmes variables signifiant la même chose, mais simplement prédéfinir quelque chose comme %"0 sur la ligne de paramètres pour indiquer à DC qu'à partir de maintenant, jusqu'à l'évaluation de la fin de la ligne, il ne faut pas ajouter de guillemets au résultat.
Fondamentalement, nous aurons :
%"0 : À partir de cette position, les noms de fichiers générés ne comporteront pas de guillemets%"1 : À partir de cette position, les noms de fichiers générés comporteront des guillemets%" : Également accepté, restaure la valeur par défaut, c'est-à-dire le résultat avec guillemetsLe tableau ci-dessous donne un exemple où nous avons sélectionné un fichier nommé "Liste Clients.mdb", ainsi que les résultats de diverses combinaisons avec ou sans guillemets.
| Exemples de guillemets ou non | |
|---|---|
| Expression | Résultat |
%o.zip |
"Liste Clients".zip |
%"0%o.zip |
Liste Clients.zip |
%"0"%o.zip" |
"Liste Clients.zip" |
%"0"%o.zip" %"1%f |
"Liste Clients.zip" "Liste Clients.mdb" |
Comme vous l'avez vu précédemment, pour des raisons historiques et traditionnelles, lorsque DC renvoie un chemin, il ne comportera pas de séparateur de chemin final.
Cela peut être modifié en utilisant une variable qui déterminera si les variables de chemin dans la ligne suivante comporteront un séparateur de chemin final ou non.
Fondamentalement, nous avons :
%/0 : Le chemin renvoyé ne comportera pas de séparateur final%/1 : Le chemin renvoyé comportera un séparateur final%/ : Également accepté, par défaut, le chemin renvoyé ne comportera pas de séparateur finalLe tableau ci-dessous donne un exemple où nous avons sélectionné le répertoire "C:\Users\NomUtilisateur\Desktop", ainsi que les résultats de diverses combinaisons de variables de chemin final :
| Exemples de variables de chemin final | |
|---|---|
| Expression | Résultat |
%D |
"C:\Users\NomUtilisateur\Desktop" |
%/0%D |
"C:\Users\NomUtilisateur\Desktop" |
%/1%D |
"C:\Users\NomUtilisateur\Desktop\" |
%/%D |
"C:\Users\NomUtilisateur\Desktop" |
Cette variable est utile lorsque nous combinons des noms à partir de plusieurs variables. Par exemple, sous Windows, %Dt\%f0 (ajout manuel d'un séparateur de répertoire) au lieu de %/1%Dt%f0 fonctionnera normalement à l'intérieur d'un répertoire, mais si la racine d'un lecteur est ouverte dans le panneau inactif, Double Commander renverra un chemin incorrect avec deux séparateurs de répertoire après la lettre du lecteur.
Certaines applications acceptent un seul nom de fichier comme paramètre et supposent que ce fichier est un fichier texte contenant une liste de noms de fichiers.
Double Commander fournit des variables qui créeront un fichier texte temporaire dans le répertoire des fichiers temporaires, contenant la liste de tous les éléments sélectionnés spécifiés, et remplaceront la variable par le nom du fichier temporaire créé.
| Variables de liste de fichiers | |
|---|---|
| Expression | Description |
%L |
Nom du fichier de la liste des noms de fichiers complets (chemin + nom de fichier) des éléments sélectionnés |
%F |
Nom du fichier de la liste des noms de fichiers seulement des éléments sélectionnés |
%R |
Nom du fichier de la liste des noms de chemins relatifs seulement des éléments sélectionnés |
Double Commander utilisera le codage ANSI système sous Windows, ou le codage système par défaut sous les systèmes de type Unix (généralement UTF-8 dans les distributions GNU/Linux).
Lors de la fermeture, Double Commander supprimera tous ces fichiers temporaires.
Par défaut, les noms de fichiers ci-dessus dans la liste de fichiers ne comportent pas de guillemets. Mais si nécessaire, vous pouvez ajouter un suffixe pour modifier cela.
De plus, il existe des suffixes pour spécifier si vous souhaitez que cette liste de fichiers soit encodée en UTF8 ou UTF16.
| Suffixes pour les variables de liste de fichiers | |
|---|---|
| Expression | Description |
Q |
Les noms de fichiers dans la liste comporteront des guillemets |
U |
La liste sera encodée au format UTF8 |
W |
La liste sera encodée au format UTF16 |
Vous pouvez également ajouter un autre suffixe, en utilisant les mêmes lettres de suffixe mentionnées précédemment, pour spécifier de quel panneau vous avez besoin de la liste de fichiers.
Voici des exemples possibles :
| Combinaisons de suffixes pour les variables de liste de fichiers | |
|---|---|
| Expression | Description |
%LQt |
Noms de fichiers complets, avec guillemets, provenant des fichiers sélectionnés du panneau cible |
%FUs |
Noms de fichiers seulement, format UTF8, provenant des fichiers sélectionnés du panneau source |
%RQW |
Noms de fichiers de chemins relatifs, avec guillemets, format UTF16, provenant des fichiers du panneau source (par défaut) |
Vous pouvez spécifier dans les paramètres si vous souhaitez que la ligne de commande configurée soit exécutée dans un terminal.
Pour cela, vous utiliserez la variable %t.
| Exécution dans un terminal | |
|---|---|
| Expression | Description |
%t0 |
Exécuter dans le terminal et demander la fermeture à la fin |
%t1 |
Exécuter dans le terminal et le garder ouvert à la fin |
Voici deux variables utiles pour afficher des messages et inviter l'utilisateur à fournir des paramètres lors de l'exécution, avec des valeurs par défaut suggérées :
| Interaction | |
|---|---|
| Expression | Description |
%[message à afficher] |
Une boîte de message affichera le texte spécifié entre les crochets |
%[message;valeur_par_défaut] |
Invitera l'utilisateur à saisir une valeur, en fournissant une valeur par défaut |
Exemples d'interaction :
| Exemples d'interaction | |
|---|---|
| Expression | Description |
%[Assurez-vous que CeFichier.ext est fermé !] |
Affichera le message "Assurez-vous que CeFichier.ext est fermé !" avant d'exécuter l'action. |
%[Entrez la valeur LARGEUR pour la conversion d'image;1024] |
Invitera l'utilisateur à saisir une valeur, affichant le texte "Entrez la valeur LARGEUR pour la conversion d'image", avec 1024 suggéré par défaut, mais l'utilisateur peut en saisir une autre. Ce que l'utilisateur saisit remplacera le contenu à l'emplacement de l'expression "%[requête;défaut]" dans la ligne de commande. |
Dans cette dernière section, nous montrons des variables qui n'ont pas encore été présentées.
| Variables diverses | |
|---|---|
| Expression | Description |
%% |
Sera simplement remplacé par un seul symbole % |
%# |
À partir de cette position, le symbole # sera traité comme % |
#% |
À partir de l'état précédent, fera en sorte que % soit traité comme un préfixe de variable |
%? |
Affichera la ligne de commande sur le point d'être exécutée. |
L'utilité de %% est lorsque nous avons besoin d'un symbole % dans les paramètres, mais que nous ne voulons pas qu'il soit remplacé par autre chose, car il pourrait être suivi d'une lettre, formant ainsi une variable réelle valide.
La variable %? est particulièrement utile lors de la configuration de nouveaux boutons d'outils pour s'assurer de comprendre ce qui sera utilisé comme paramètres de remplacement.
Par %?, DC vous permet de voir la commande et les paramètres réels utilisés pour lancer quelque chose.
Non seulement cela, mais vous pouvez même changer quelque chose à la dernière minute lors du lancement de quelque chose.
C'est particulièrement utile lorsque vous n'êtes pas sûr des paramètres à passer à l'application cible.
Parfois, la combinaison d'un signe de pourcentage et d'une lettre de variable peut entrer en conflit avec une variable système.
Par exemple, si vous tapez %os%ot en pensant que cela sera remplacé par une simple concaténation des extensions de fichiers des panneaux actif et inactif, vous pourriez être surpris de voir que cela pourrait ne pas fonctionner correctement sous Windows.
La séquence %os% sera normalement remplacée par le nom du système d'exploitation car %os% est une variable système représentant le nom du système d'exploitation.
C'est là que %# est utile.
Dans ce genre d'exemple, vous taperiez %##os#ot.
%# indique à DC qu'à partir de maintenant, # est désormais l'équivalent du signe de pourcentage, afin qu'il n'y ait pas de conflit avec les variables système possibles.
C'est rarement nécessaire, mais si ça l'est, vous serez heureux de savoir que cela existe !
Ensuite, si nécessaire, #% restaurera % comme le préfixe de pourcentage réel pour les variables.
Rien de nouveau dans cette section, mais résumons toutes les variables supportées et leur signification dans un seul tableau.
| Autres variables | |
|---|---|
| Expression | Description |
%p | Nom de fichier complet, incluant le chemin |
%f | Nom de fichier seulement, incluant l'extension |
%d | Chemin seulement |
%z | Dernier répertoire dans le chemin |
%o | Nom de fichier seulement, sans l'extension |
%e | Extension de fichier seulement, sans le point |
%v | Nom de fichier relatif au répertoire actif actuel |
s | Suffixe pour le panneau source ou actif (Exemple : %ps) |
t | Suffixe pour le panneau cible ou inactif (Exemple : %pt) |
l | Suffixe pour le panneau de gauche (Exemple : %pl) |
r | Suffixe pour le panneau de droite (Exemple : %pr) |
p | Suffixe pour les deux panneaux, actif en premier, inactif après (Exemple : %pp) |
b | Suffixe pour les deux panneaux, gauche en premier, droit après (Exemple : %pb) |
0 | Fichier sous le curseur (Exemple : %ps0) |
1 | Premier fichier sélectionné (Exemple : %ps1) |
2 | Deuxième fichier sélectionné (Exemple : %ps2) |
3 | Troisième fichier sélectionné (Exemple : %ps3) |
21 | Vingt-et-unième fichier sélectionné (Exemple : %ps21) |
{préfixe} | {} utilisé une fois, ajoutera le préfixe réglé devant le nom du fichier (Exemple : %f{+}) |
{préfixe}{suffixe} | {} utilisé deux fois, réglera le préfixe et le suffixe, respectivement avant et après le nom du fichier (Exemple : %f{[}{]}) |
%D | Par défaut, chemin du panneau actif (source) |
%Ds | Spécifie particulièrement le chemin du panneau actif (source) |
%Dt | Chemin du panneau inactif (cible) |
%Dl | Chemin du panneau de gauche, peu importe lequel est actif |
%Dr | Chemin du panneau de droite, peu importe lequel est actif |
%Z | Par défaut, nom du dernier répertoire du chemin du panneau actif (source) |
%Zs | Spécifie particulièrement le nom du dernier répertoire du chemin du panneau actif (source) |
%Zt | Nom du dernier répertoire du chemin du panneau inactif (cible) |
%Zl | Nom du dernier répertoire du chemin du panneau de gauche, peu importe lequel est actif |
%Zr | Nom du dernier répertoire du chemin du panneau de droite, peu importe lequel est actif |
%"0 | À partir de cette position, les noms de fichiers générés ne comporteront pas de guillemets |
%"1 | À partir de cette position, les noms de fichiers générés comporteront des guillemets |
%" | Également accepté, fait en sorte que les noms de fichiers générés comportent à nouveau des guillemets |
%/0 | Par défaut, le chemin renvoyé ne comportera pas de séparateur final |
%/1 | Le chemin renvoyé comportera un séparateur final |
%/ | Également accepté, par défaut, le chemin renvoyé ne comportera pas de séparateur final |
%L | Nom de fichier de la liste des éléments sélectionnés, contient uniquement les noms de fichiers complets (chemin + nom) |
%F | Nom de fichier de la liste des éléments sélectionnés, contient uniquement les noms de fichiers |
%R | Nom de fichier de la liste des éléments sélectionnés, contient uniquement les noms de chemins relatifs |
Q | Suffixe pour %L, %F ou %R, utilisé pour demander des noms de fichiers entre guillemets |
U | Suffixe pour %L, %F ou %R, utilisé pour demander un fichier de liste au format UTF8 |
W | Suffixe pour %L, %F ou %R, utilisé pour demander un fichier de liste au format UTF16 |
%t0 | Exécuter dans le terminal et demander la fermeture à la fin |
%t1 | Exécuter dans le terminal et le garder ouvert à la fin |
%[message à afficher] | Une boîte de message affichera le texte spécifié entre les crochets |
%[message;valeur_par_défaut] | Invitera l'utilisateur à saisir une valeur et fournira une valeur suggérée |
%% | Sera simplement remplacé par un seul symbole % |
%# | À partir de cette position, le symbole # sera traité comme % |
#% | À partir de l'état précédent, fera en sorte que % soit traité comme un préfixe de variable |
%? | Affichera la ligne de commande sur le point d'être exécutée |
Nous pouvons utiliser des variables d'environnement dans les paramètres de Double Commander : dans le nom de l'exécutable et l'icône sur la barre d'outils, le nom du greffon, les répertoires favoris, etc. C'est un moyen pratique de spécifier des chemins si nous ne voulons pas utiliser de chemins absolus.
Double Commander supporte les variables d'environnement du système et fournit également ses propres variables d'environnement :
| Variables d'environnement | |
|---|---|
| Variable | Description |
%COMMANDER_EXE% |
Nom complet de l'exécutable de Double Commander (chemin + nom de fichier) (les liens symboliques seront remplacés par le fichier réel) |
%COMMANDER_PATH% |
Le répertoire où se trouve l'exécutable de Double Commander |
%COMMANDER_DRIVE% |
Le disque où se trouve le dossier de Double Commander : - Windows : lettre du lecteur (avec deux-points) ; - Systèmes de type Unix : point de montage. |
%COMMANDER_INI% |
Nom complet (chemin + nom de fichier) du fichier de configuration principal (doublecmd.xml) |
%COMMANDER_INI_PATH% |
Le répertoire où se trouvent les fichiers de configuration de Double Commander |
%DC_CONFIG_PATH% |
Le répertoire où se trouvent les fichiers de configuration de Double Commander |
Les noms de variables %COMMANDER_PATH% et %DC_CONFIG_PATH% sont insensibles à la casse, et nous pouvons utiliser le signe de pourcentage % peu importe la famille de système d'exploitation (ce qui est pratique pour les applications multiplateformes pour des raisons de compatibilité ascendante). Cependant, sous les systèmes de type Unix, les noms de variables d'environnement sont sensibles à la casse et sont traditionnellement écrits en majuscules, l'utilisation de l'orthographe traditionnelle peut donc être une bonne habitude.
Sous Windows, nous pouvons en plus utiliser des pseudo-variables d'environnement au format %$Nom%, elles correspondent aux dossiers système Windows standard (pour obtenir les valeurs, Double Commander utilise les fonctions SHGetSpecialFolderPath et SHGetKnownFolderPath de l'API Windows). Ce ne sont pas des variables d'environnement normales et elles ne sont pas disponibles pour les processus fils (applications lancées depuis Double Commander), mais à d'autres égards, nous pouvons les utiliser de manière similaire aux variables d'environnement. Toutes ces variables sont rassemblées dans le menu d'aide à la sélection de chemin : à droite du bouton de sélection de fichier ou de répertoire se trouve le bouton Quelques fonctions pour choisir un chemin approprié
, voir la description ici.
Toutes ces variables ont été ajoutées au menu de la Liste des répertoires favoris (sous-menu Répertoires spéciaux).
Créé à l'origine par Rustem (dok_rust@bk.ru)