Le variabili ci aiuteranno durante la configurazione dei pulsanti della barra degli strumenti, delle azioni di associazione file o delle scorciatoie da tastiera (hotkey).
Utilizzeremo queste variabili principalmente quando avremo bisogno di passare parametri a un comando in base al file attualmente selezionato, alla directory corrente o ad altre informazioni contestuali correlate a ciò che viene visualizzato nei pannelli.
Ecco un semplice esempio: l'utente configura un pulsante per avviare IrfanView e utilizza la variabile %p come parametro.

Quando l'utente fa clic sul pulsante, IrfanView viene avviato sostituendo la variabile %p con il file attualmente selezionato nel pannello attivo.
Questo è il significato delle variabili descritte in questa pagina.
Come vedrai, la maggior parte delle variabili inizia con il simbolo di percentuale %.
Nota: le variabili e i suffissi fanno distinzione tra maiuscole e minuscole!
Queste sono le variabili di base che è possibile utilizzare, correlate alla selezione corrente.
Per impostazione predefinita, i valori delle variabili che contengono spazi e/o caratteri speciali vengono convertiti automaticamente: in Windows il valore sarà racchiuso tra doppie virgolette, mentre nei sistemi Unix-like i caratteri speciali saranno preceduti da "\". Se hai bisogno del risultato non racchiuso tra virgolette, fai riferimento alla sezione Risultati con o senza virgolette.
Per ciascuna variabile, l'esempio presuppone che si stia puntando al file C:\Users\NomeUtente\Desktop\comment.png.
| Variabili di base | |
|---|---|
| Variabile | Significato |
%p |
Nome file completo, percorso + nome fileEsempio: %p = "C:\Users\NomeUtente\Desktop\comment.png" |
%f |
Solo nome file, inclusa estensioneEsempio: %f = "comment.png" |
%d |
Solo percorso, escluso il delimitatore di directory finaleEsempio: %d = "C:\Users\NomeUtente\Desktop" |
%z |
Nome dell'ultima directory nel percorsoEsempio: %z = "Desktop" |
%o |
Solo nome file, esclusa estensioneEsempio: %o = "comment" |
%e |
Solo estensione, escluso il puntoEsempio: %e = "png" |
%v |
Nome file relativo alla directory attualmente attiva Ad esempio, si applica quando utilizziamo il comando interno cm_FlatView. Se effettuiamo una vista piatta dalla directory "C:\Users\NomeUtente", %v restituirà "Desktop\comment.png" |
La variabile %a può essere utilizzata per file system virtuali (archivi aperti o plugin di file system): la stringa include il percorso del file system virtuale (nome completo dell'archivio o nome del plugin WFX preceduto da "wfx://") e il nome del file completo relativo alla radice del file system virtuale.
Se sono selezionati più file, queste variabili restituiranno i valori di tutti i file selezionati su un'unica riga. Per ottenere sempre il valore del file sotto il cursore, possiamo utilizzare il suffisso numerico 0.
Dopo la lettera della variabile, possiamo aggiungere un'altra lettera per specificare in modo più preciso il contenuto che desideriamo utilizzare.
Per ciascuna variabile, l'esempio presuppone:
Il pannello sinistro punta al file "C:\CartellaSinistra\File.lft"
Il pannello destro punta al file "C:\CartellaDestra\File.rgh"
Il pannello attualmente attivo è quello destro.
| Suffissi di base | |
|---|---|
| Suffisso | Significato |
s |
Pannello sorgente o attivo (indipendentemente dal fatto che sia a sinistra o a destra)Esempio: %ps = "C:\CartellaDestra\File.rgh" |
t |
Pannello destinazione o inattivo (indipendentemente dal fatto che sia a sinistra o a destra)Esempio: %pt = "C:\CartellaSinistra\File.lft" |
l |
Pannello sinistroEsempio: %pl = "C:\CartellaSinistra\File.lft" |
r |
Pannello destroEsempio: %pr = "C:\CartellaDestra\File.rgh" |
|
p |
Entrambi i pannelli, quello attivo per primo, poi uno spazio, infine quello inattivoEsempio: %pp = "C:\CartellaDestra\File.rgh" "C:\CartellaSinistra\File.lft" |
b |
Entrambi i pannelli, quello sinistro per primo, poi uno spazio, infine quello destroEsempio: %pb = "C:\CartellaSinistra\File.lft" "C:\CartellaDestra\File.rgh" |
Se abbiamo selezionato più file, possiamo aggiungere un suffisso numerico al suffisso precedente per specificare esattamente quale file utilizzare.
Per ciascun elemento nella tabella, presupponiamo che il pannello sorgente punti a "C:\temp\" e che abbiamo selezionato venti file, da "FileA.txt", "FileB.txt", ecc., fino a "FileZ.txt".
| Suffissi numerici | |
|---|---|
| Suffisso | Significato |
0 |
Il file sotto il cursoreEsempio: %ps0 = "C:\temp\FileY.txt" |
1 |
Il primo file selezionatoEsempio: %ps1 = "C:\temp\FileA.txt" |
2 |
Il secondo file selezionatoEsempio: %ps2 = "C:\temp\FileB.txt" |
3 |
Il terzo file selezionatoEsempio: %ps3 = "C:\temp\FileC.txt" |
21 |
Il ventunesimo file selezionatoEsempio: %ps21 = "C:\temp\FileU.txt" |
A volte, quando passiamo parametri a un file eseguibile, è necessario includere determinati caratteri o testi prima del nome del file.
Altre volte desideriamo includere del testo sia prima che dopo il nome del file.
Si noti che quanto segue verrà applicato a ciascuno degli elementi selezionati.
Per ciascun elemento nella tabella, presupponiamo di aver selezionato tre file all'interno di "C:\Windows\Fonts": "courrier.ttf", "fixedsys.ttf" e "terminal.ttf".
| Prefissi e suffissi | |
|---|---|
| Prefisso e suffisso | Significato |
{} |
Una coppia di parentesi graffe farà sì che il testo tra le parentesi venga inserito prima di ciascun elemento selezionatoEsempio: %fs{+} = "+courrier.ttf" "+fixedsys.ttf" "+terminal.ttf" |
{}{} |
Due coppie di parentesi graffe faranno sì che il testo tra le prime parentesi venga inserito prima e quello tra le seconde parentesi dopo ciascun elemento selezionato.Esempio: %fs{[}{]} = "[courrier.ttf]" "[fixedsys.ttf]" "[terminal.ttf]" |
In precedenza abbiamo indicato variabili correlate all'elemento attualmente selezionato all'interno del pannello.
Tuttavia, possiamo anche utilizzare la variabile %D per fare riferimento al percorso della directory visualizzata nel pannello.
A tale variabile possiamo aggiungere le stesse lettere di suffisso descritte sopra per specificare a quale pannello fare riferimento.
Per ciascuna variabile, l'esempio presuppone:
Il pannello sinistro è in "C:\Reference"
Il pannello destro punta a "E:\Work"
Il pannello attualmente attivo è quello destro.
| Percorsi dei pannelli | |
|---|---|
| Variabile | Significato |
%D |
Utilizzata da sola, senza suffissi, restituirà il percorso del pannello attivoEsempio: "E:\Work" |
%Ds |
La directory del pannello attivo o sorgente (a sinistra o a destra)Esempio: "E:\Work" |
%Dt |
La directory del pannello inattivo o destinazione (a sinistra o a destra)Esempio: "C:\Reference" |
%Dl |
La directory del pannello sinistroEsempio: "C:\Reference" |
%Dr |
La directory del pannello destroEsempio: "E:\Work" |
%Z |
Utilizzata da sola, senza suffissi, restituirà l'ultimo nome di directory del percorso del pannello attivoEsempio: "Work" |
%Zs |
L'ultimo nome di directory del percorso del pannello attivo o sorgente (a sinistra o a destra)Esempio: "Work" |
%Zt |
L'ultimo nome di directory del percorso del pannello inattivo o destinazione (a sinistra o a destra)Esempio: "Reference" |
%Zl |
L'ultimo nome di directory del percorso del pannello sinistroEsempio: "Reference" |
%Zr |
L'ultimo nome di directory del percorso del pannello destroEsempio: "Work" |
La variabile %A può essere utilizzata per file system virtuali (archivi aperti o plugin di file system): il nome completo dell'archivio o il nome del plugin WFX preceduto da "wfx://".
Come hai visto in precedenza, per ragioni storiche e di compatibilità, DC restituirà per impostazione predefinita risultati racchiusi tra virgolette.
Originariamente, ciò era utile quando i nomi dei file contenevano spazi, consentendo al sistema di passare i parametri correttamente e far funzionare le operazioni.
Tuttavia, con l'introduzione delle nuove variabili, è emersa la necessità di disporre di risultati non racchiusi tra virgolette. Un esempio tipico è quando vogliamo unire il nome di un file sorgente, privato dell'estensione, con una nuova estensione specificata da noi.
Pertanto, invece di aggiungere nuove variabili specifiche, utilizziamo le stesse variabili impostando preventivamente all'inizio della riga dei parametri una stringa come %"0, per indicare a DC che da quel punto in poi non dovrà aggiungere virgolette al risultato.
In sintesi, abbiamo:
%"0 : a partire da questa posizione, i nomi dei file generati non saranno racchiusi tra virgolette%"1 : a partire da questa posizione, i nomi dei file generati saranno racchiusi tra virgolette%" : accettato per ripristinare il valore predefinito (ovvero racchiuso tra virgolette)La tabella seguente mostra un esempio basato su un file selezionato denominato "Client List.mdb", con i diversi risultati in base alla combinazione delle espressioni:
| Esempi di utilizzo delle virgolette | |
|---|---|
| Espressione | Risultato |
%o.zip |
"Client List".zip |
%"0%o.zip |
Client List.zip |
%"0"%o.zip" |
"Client List.zip" |
%"0"%o.zip" %"1%f |
"Client List.zip" "Client List.mdb" |
Per ragioni di compatibilità storica, quando DC restituisce un percorso, questo non includerà il delimitatore finale del percorso.
Questa impostazione può essere modificata utilizzando una variabile di controllo che determinerà se le variabili di percorso successive includeranno o meno il delimitatore finale.
In sintesi, abbiamo:
%/0 : i percorsi restituiti non conterranno il delimitatore finale%/1 : i percorsi restituiti conterranno il delimitatore finale%/ : accettato, ripristina la modalità predefinita (senza delimitatore finale)La tabella seguente mostra un esempio basato sulla directory selezionata "C:\Users\NomeUtente\Desktop":
| Esempi di delimitatore finale | |
|---|---|
| Espressione | Risultato |
%D |
"C:\Users\NomeUtente\Desktop" |
%/0%D |
"C:\Users\NomeUtente\Desktop" |
%/1%D |
"C:\Users\NomeUtente\Desktop\" |
%/%D |
"C:\Users\NomeUtente\Desktop" |
Questa impostazione si rivela utile quando assembliamo percorsi combinando più variabili. Ad esempio, in Windows, l'uso di %Dt\%f0 (con il delimitatore inserito manualmente) funziona all'interno delle cartelle, ma se nel pannello inattivo è aperta la radice di un'unità, Double Commander potrebbe restituire un percorso errato contenente due delimitatori dopo la lettera del drive, a differenza dell'uso corretto di %/1%Dt%f0.
Alcune applicazioni accettano un singolo file come parametro presupponendo che tale file sia un elenco testuale di nomi di file.
Double Commander fornisce variabili in grado di creare un file di testo temporaneo all'interno della cartella dei file temporanei del sistema, contenente l'elenco di tutti gli elementi selezionati, sostituendo il nome di tale file temporaneo alla variabile stessa.
| Variabili per l'elenco dei file | |
|---|---|
| Espressione | Descrizione |
%L |
Nome del file temporaneo contenente l'elenco completo dei nomi di file selezionati (percorso + nome file) |
%F |
Nome del file temporaneo contenente solo i nomi dei file selezionati |
%R |
Nome del file temporaneo contenente solo i percorsi relativi dei file selezionati |
Double Commander utilizzerà la codifica ANSI di sistema in Windows, o la codifica predefinita nei sistemi Unix-like (solitamente UTF-8 nelle distribuzioni GNU/Linux).
Alla chiusura dell'applicazione, Double Commander eliminerà automaticamente tutti i file temporanei creati.
Per impostazione predefinita, i nomi di file all'interno dell'elenco non sono racchiusi tra virgolette. Tuttavia, se necessario, è possibile aggiungere un suffisso per modificare questo comportamento.
Inoltre, esistono suffissi per specificare se si desidera codificare l'elenco dei file in UTF-8 o UTF-16.
| Suffissi per le variabili di elenco dei file | |
|---|---|
| Espressione | Descrizione |
Q |
I nomi di file all'interno dell'elenco temporaneo saranno racchiusi tra virgolette |
U |
L'elenco dei file verrà codificato in formato UTF-8 |
W |
L'elenco dei file verrà codificato in formato UTF-16 |
È possibile aggiungere un ulteriore suffisso utilizzando le stesse lettere descritte in precedenza per specificare da quale pannello estrarre l'elenco dei file.
Ecco degli esempi possibili:
| Esempi di combinazione di suffissi | |
|---|---|
| Espressione | Descrizione |
%LQt |
Nomi di file completi, racchiusi tra virgolette, estratti dai file selezionati nel pannello di destinazione |
%FUs |
Solo i nomi dei file, in formato UTF-8, estratti dai file selezionati nel pannello sorgente |
%RQW |
Percorsi relativi dei file, racchiusi tra virgolette, in formato UTF-16, estratti dal pannello sorgente (predefinito) |
Puoi specificare nei parametri se desideri che la riga di comando configurata venga eseguita all'interno di una finestra di terminale.
A tale scopo si utilizza la variabile %t.
| Esecuzione nel terminale | |
|---|---|
| Espressione | Descrizione |
%t0 |
Esegue nel terminale e ne richiede la chiusura al termine dell'operazione |
%t1 |
Esegue nel terminale e lo mantiene aperto al termine dell'operazione |
Di seguito sono riportate due variabili utili per visualizzare un messaggio o richiedere parametri all'utente durante l'esecuzione, proponendo un valore predefinito consigliato:
| Interazione | |
|---|---|
| Espressione | Descrizione |
%[testo da mostrare] |
Mostra una finestra di messaggio con il testo specificato tra le parentesi quadre |
%[testo;valore_predefinito] |
Richiede un valore all'utente, proponendo un valore predefinito consigliato |
Esempi di interazione:
| Esempi di interazione | |
|---|---|
| Espressione | Descrizione |
%[Make sure ThisFile.ext is closed!] |
Mostrerà il messaggio "Make sure ThisFile.ext is closed!" prima di eseguire l'operazione. |
%[Enter WIDTH value for image conversion;1024] |
Richiederà all'utente di inserire un valore mostrando il testo "Enter WIDTH value for image conversion", proponendo il valore predefinito 1024. L'utente potrà comunque inserire un valore differente, che sostituirà l'espressione "%[query;default]" nella riga di comando. |
In questa ultima sezione presentiamo le restanti variabili non descritte in precedenza.
| Altre variabili | |
|---|---|
| Espressione | Descrizione |
%% |
Viene semplicemente sostituita da un singolo carattere di percentuale (%) |
%# |
A partire da questa posizione, il carattere cancelletto (#) verrà trattato come % |
#% |
Ripristina lo stato precedente, in cui il carattere % viene considerato il prefisso delle variabili |
%? |
Visualizza la riga di comando che sta per essere eseguita. |
L'uso di %% serve quando abbiamo bisogno di includere un simbolo % nei parametri senza che questo venga interpretato come una variabile, in quanto potrebbe essere seguito da una lettera valida per le variabili.
La variabile %? è particolarmente utile durante la configurazione di nuovi pulsanti degli strumenti, consentendo di verificare esattamente quali parametri verranno passati.
Tramite %?, DC ti mostrerà i parametri e il comando reali che verranno eseguiti prima di procedere.
Inoltre, avrai la possibilità di modificare i parametri all'ultimo momento prima dell'esecuzione.
Questa funzione si rivela eccellente quando non si è sicuri dei parametri richiesti dall'applicazione di destinazione.
Inoltre, a volte la combinazione di percentuali e lettere delle variabili potrebbe andare in conflitto con le variabili d'ambiente di sistema.
Ad esempio, se inserisci %os%ot pensando che venga sostituito dalla semplice unione delle estensioni dei file dei pannelli attivo e inattivo, potresti notare che in Windows questo non funziona come previsto.
La sequenza %os% viene infatti normalmente interpretata dal sistema operativo per essere sostituita con il nome del sistema, in quanto variabile d'ambiente di Windows.
In questi casi entra in gioco la variabile %#.
In questo esempio specifico, digiterai %##os#ot.
%# indica a DC che da quel punto in avanti il carattere # equivarrà al simbolo di percentuale per le variabili, evitando così il conflitto con le variabili di sistema.
Questa necessità si presenta raramente, ma sapere che esiste è rassicurante!
Successivamente, se necessario, l'uso di #% ripristinerà il carattere % come prefisso per le variabili.
Questa sezione non introduce novità, ma riassume in un'unica tabella tutte le variabili supportate e i relativi significati.
| Tabella delle variabili | |
|---|---|
| Espressione | Descrizione |
%p | Nome del file completo, comprensivo di percorso |
%f | Solo nome del file, inclusa estensione |
%d | Solo percorso della directory |
%z | Nome dell'ultima directory del percorso |
%o | Solo nome del file, esclusa estensione |
%e | Solo estensione del file, escluso il punto |
%v | Nome del file relativo alla directory attualmente attiva |
s | Suffisso per il pannello sorgente o attivo (es. %ps) |
t | Suffisso per il pannello destinazione o inattivo (es. %pt) |
l | Suffisso per il pannello sinistro (es. %pl) |
r | Suffisso per il pannello destro (es. %pr) |
p | Suffisso per entrambi i pannelli, attivo per primo, poi inattivo (es. %pp) |
b | Suffisso per entrambi i pannelli, sinistro per primo, poi destro (es. %pb) |
0 | Il file sotto il cursore (es. %ps0) |
1 | Il primo file selezionato (es. %ps1) |
2 | Il secondo file selezionato (es. %ps2) |
3 | Il terzo file selezionato (es. %ps3) |
21 | Il ventunesimo file selezionato (es. %ps21) |
{prefisso} | Graffe utilizzate una volta: impostano il prefisso prima del nome file (es. %f{+}) |
{prefisso}{suffisso} | Graffe utilizzate due volte: impostano prefisso e suffisso prima e dopo il nome file (es. %f{[}{]}) |
%D | Percorso del pannello attivo (sorgente) per impostazione predefinita |
%Ds | Percorso del pannello attivo (sorgente) specificato |
%Dt | Percorso del pannello inattivo (destinazione) |
%Dl | Percorso del pannello sinistro (indipendentemente da quale sia attivo) |
%Dr | Percorso del pannello destro (indipendentemente da quale sia attivo) |
%Z | Ultimo nome di directory del pannello attivo (sorgente) per impostazione predefinita |
%Zs | Ultimo nome di directory del pannello attivo (sorgente) specificato |
%Zt | Ultimo nome di directory del pannello inattivo (destinazione) |
%Zl | Ultimo nome di directory del pannello sinistro (indipendentemente da quale sia attivo) |
%Zr | Ultimo nome di directory del pannello destro (indipendentemente da quale sia attivo) |
%"0 | A partire da questo punto, i nomi dei file generati non saranno racchiusi tra virgolette |
%"1 | A partire da questo punto, i nomi dei file generati saranno racchiusi tra virgolette |
%" | Accettato per ripristinare la modalità predefinita con le virgolette |
%/0 | I percorsi restituiti non conterranno il delimitatore finale per impostazione predefinita |
%/1 | I percorsi restituiti conterranno il delimitatore finale |
%/ | Accettato per ripristinare la modalità predefinita senza delimitatore finale |
%L | Nome del file temporaneo contenente l'elenco dei file comprensivi di percorsi completi |
%F | Nome del file temporaneo contenente l'elenco dei soli nomi di file |
%R | Nome del file temporaneo contenente l'elenco dei soli percorsi relativi dei file |
Q | Suffisso per %L, %F o %R, richiede nomi di file racchiusi tra virgolette |
U | Suffisso per %L, %F o %R, richiede il file di elenco in formato UTF-8 |
W | Suffisso per %L, %F o %R, richiede il file di elenco in formato UTF-16 |
%t0 | Esegue nel terminale e richiede la chiusura al termine dell'operazione |
%t1 | Esegue nel terminale e lo mantiene aperto al termine dell'operazione |
%[messaggio da mostrare] | Mostra una finestra di messaggio con il testo specificato tra le parentesi |
%[messaggio;valore_predefinito] | Richiede un valore all'utente proponendo il valore predefinito consigliato |
%% | Viene semplicemente sostituita da un singolo carattere di percentuale (%) |
%# | A partire da questa posizione, il carattere cancelletto (#) verrà trattato come % |
#% | Ripristina lo stato precedente, in cui % viene considerato il prefisso delle variabili |
%? | Visualizza la riga di comando che sta per essere eseguita |
Possiamo utilizzare le variabili d'ambiente all'interno delle impostazioni di Double Commander: nei percorsi dei file eseguibili e delle icone sulla barra degli strumenti, nei nomi dei plugin, nelle directory preferite, ecc. Si tratta di un modo estremamente comodo per specificare i percorsi senza utilizzare riferimenti assoluti.
Double Commander supporta le variabili d'ambiente di sistema e fornisce alcune variabili d'ambiente personali:
| Variabili d'ambiente | |
|---|---|
| Variabile | Descrizione |
%COMMANDER_EXE% |
Nome completo del file eseguibile di Double Commander (percorso + nome file, i collegamenti simbolici verranno sostituiti con i file reali) |
%COMMANDER_PATH% |
La directory contenente il file eseguibile di Double Commander |
%COMMANDER_DRIVE% |
L'unità o il disco contenente la cartella di Double Commander: - Windows: lettera dell'unità (con i due punti); - Sistemi Unix-like: il punto di montaggio. |
%COMMANDER_INI% |
Nome completo del file di configurazione principale (doublecmd.xml, percorso + nome file) |
%COMMANDER_INI_PATH% |
La directory contenente i file di configurazione di Double Commander |
%DC_CONFIG_PATH% |
La directory contenente i file di configurazione di Double Commander (sinonimo di %COMMANDER_INI_PATH%) |
I nomi delle variabili %COMMANDER_PATH% e %DC_CONFIG_PATH% non fanno distinzione tra maiuscole e minuscole, ed è possibile utilizzare il simbolo di percentuale % indipendentemente dal sistema operativo utilizzato (utile per garantire la compatibilità nelle applicazioni multi-piattaforma). Tuttavia, si ricorda che nei sistemi Unix-like i nomi delle variabili d'ambiente fanno distinzione tra maiuscole e minuscole e sono tradizionalmente scritti in lettere maiuscole, pertanto utilizzare la grafia convenzionale rappresenta una buona abitudine.
In Windows, possiamo inoltre utilizzare pseudo-variabili d'ambiente nel formato %$Nome%, che corrispondono alle cartelle speciali di Windows (Double Commander utilizza le funzioni SHGetSpecialFolderPath e SHGetKnownFolderPath delle API di Windows per recuperarne i percorsi). Queste non sono normali variabili d'ambiente di sistema e non sono disponibili per i processi figli (applicazioni avviate da Double Commander), ma possiamo utilizzarle all'interno di DC in modo del tutto simile alle variabili classiche. Tutte queste variabili sono raccolte nel menu dell'assistente percorsi: a destra del pulsante per la selezione di file o directory si trova il pulsante Funzioni per scegliere il percorso corretto
, la cui descrizione è disponibile qui.
Tutte queste variabili sono state aggiunte anche al menu dell'elenco delle cartelle preferite (sotto-menu Cartelle speciali).
Creato originariamente da Rustem (dok_rust@bk.ru)