04.03.2021, Vladimír Klaus, navštíveno 2863x
Jak jistě víte, v Total Commanderu existují příkazy na kopírování názvu aktuálního souboru do schránky, a to buď jen názvu nebo i s celou cestou. A funguje to jak pro aktuální soubor nebo pro všechny vybrané.
Příkazy najdete v menu Výběr a můžete si je přidat i do Start menu, což si ukážeme dále.
Pokud ale budete chtít zkopírovat pouze cestu k aktuálnímu souboru, tak to už v menu nenajdete. Takový příkaz musíte přidat do Start menu nebo třeba do tlačítkové lišty. Začněte tedy Start > Změna nabídky Start...
Zvolíte Přidat položku a zadáte nějaký název.
Poté klikněte vedle řádky Příkaz na "lupu". Objeví se okno, ve kterém vidíte všechny interní příkazy, proto dole do okénka Filtr zadejte "cm_copy". Poté vyberte příkaz odpovídající "Kopírovat do schránky zdrojovou cestu" (zdrojová cesta se bere z aktuálního souboru v TC).
Vybraný příkaz se objeví v editační řádce, případně můžete ještě přiřadit klávesovou zkratku a vše potvrdit.
Jenomže, když tento příkaz vyzkoušíte, tak možná budete nemile překvapeni - navzdory konvencím, neobsahuje získaná cesta koncové lomítko (kromě případu, kdy jde o root disku). Pro někoho detail, pro mě obtěžující nedokonalost. A nejen pro mě, jak se ukázalo při hledání řešení tohoto problémku.
Nouzové řešení spočívá v tom, že přejdete na položku ".." a tam použijete již zmiňovaný příkaz "Zkopírovat názvy včetně cest do schránky" nebo se pustíte do tvorby vlastního příkazu, a tím se i něco naučíte 😉.
Tvorba vlastního příkazu
Pro zadání vlastního příkazu budete potřebovat usercmd.ini. Jenže kde takový soubor je? Většinou nikde... musí se nejprve vytvořit.
Začneme ale stejně jako při přidávání standardních příkazů, Start > Změna nabídky Start... > Přidat položku.
Opět klikněte na "lupu" vedle řádky "Příkaz" a v levém panelu odrolujte až úplně dolů. Zde zvolte "usercmd.ini".
Zde zvolte "Nový" a zadejte interní název vašeho příkazu (zde vycházím z níže uvedených zdrojů, abyste si případně mohli dohledat další informace).
Po potvrzení budete muset zadat nějaký skutečný příkaz/program a jeho parametry. Vyplňte je takto:
- Příkaz: CMD /c
- Parametry: chcp 65001 & echo|set/p="%P"|clip
A co že jste to vlastně zadali? Příkaz CMD /c způsobí že se zavolá daný příkaz a okno se ukončí.
Parametry pak nastavují práci v UTF-8 (kódová stránka 65001), pomocí echo nechám vypsat/přiřadit aktuální cestu (%P) a tu následně pošlu do schránky pomocí "|clip". Ano, pokud se někde v TC odkazujete na %P, tak je to aktuální cesta a obsahuje i lomítko. Proč výše uvedený příkaz toto nerespektuje, ví asi jen autor...
Nyní už jen zbývá přiřadit klávesovou zkratku, případně příkazy v menu přeuspořádat.
A ještě - kde, že se ten soubor usercmd.ini vytvořil?
c:\Users\{USERNAME}\AppData\Roaming\GHISLER\usercmd.ini
Pokud máte TC nainstalován klasicky, tak ve stejné složce najdete i všechny další důležité soubory, které je dobré čas od času zálohovat.
- default.bar
- vertical.bar
- default.br2
- vertical.br2
- fileinfo.ini
- usercmd.ini
- wcx_ftp.ini
- wincmd.ini
- WINCMD.KEY
Obsah onoho souboru je krásně čitelný, takže ho můžete upravovat přímo... což se velmi hodí. Je dobré přidat "iconic=1", aby při spuštění příkazu neprobliklo DOSovské okno.
[em_CopySrcPathWithBSToClip]
button=
cmd=CMD /c
param=chcp 65001 & echo|set /p="%P"|clip
iconic=1
Zbývá asi jen podotknout, že pokud v TC zvolíte Konfigurace > Přímá úprava konfiguračních souborů..., tak usercmd.ini se nezobrazí. 🤨
Zdroje: