Finde mich (unterschiedliche Bezeichnungen für dieses Thema):
Benutzer-definierter Befehl (BDB) // Benutzer-definiertes Kommando (BDK) // User defined command (UDC) // extended command em_
Erweiterter Befehl (em_xxxxx , em-Befehl em-Kommando) als Ergänzung zu internen Befehlen (commandos cm_xxxxx)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Zur Vertiefung
Für weitere Informationen siehe auch:
"Button anlegen / Buttonbar erstellen / Icons"
viewtopic.php?f=2&t=50016&p=342115
TC Automatisieren Skripten (Generelle Infos) >> Post 2 - Quoting / Anführungszeichen
viewtopic.php?p=336059#p336059
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Benutzer definierte Kommandos
cm_irgendwas = interner Befehl
em_irgendwas = Benutzerbefehl
Siehe auch das Wiki > http://www.ghisler.ch/wikide/index.php/Benutzerdefinierte_Befehle
Als Alternative zu den TC internen Kommandos Namens “cm_irgendwas” ,
(z.B.: cm_RightBySize, cm_RenameOnly, cm_CompareDirs,... siehe TOTALCMD.INC -Datei im TC-Ordner)
kannst du auch eigene Anwenderbefehle mit Namen “em_irgendwas”, erstellen.
(z.B.: em_Rechner, em_StarteAHKprogramm, em_RunNotepad, em_OpenTCFolder, em_GoToMyHome)
Was jetzt genau als Kommando eingtragen wird ist von Fall zu Fall unterschiedlich,
meistens sind es Einräge, wie man sie auch in eine DOS Batchdatei bzw. in das schwarze DOS-Fenster (cmd.exe) schreiben würde.
Siehe hierzu die Beispiele, lies die Hilfe (siehe unten) oder suche im Forum nach den Stichwörtern (wie zB usercmd.ini), zur Not erstelle einen neuen Thread mit deiner Frage.
Um solch einen eigenen Befehl zu erstellen, folge einem dieser beiden Möglichkeiten.
Möglichkeit 1, manuelle Erstellung durch editieren der „usercmd.ini“
Für erfahrene Anwender ist ein direktes Editieren der usercmd.ini der schnellste Weg, um ein neues Benutzerkommando anzulegen.
Du kannst aber gerne auch die Möglichkeit 2 (über den Dialog, siehe unten) verwenden.
Die usercmd.ini befindet sich immer im Ordner mit der wincmd.ini. (Speicherort siehe Menü "Hilfe > Über Total Commander... > INI-Dateien").
Falls keine usercmd.ini vorhanden ist, erstelle eine normale Textdatei mit diesem Namen (die "Möglichkeit 2" unten erstellt diese Datei automatisch).
Beispieleintrag
-----------------------------
Code: Select all
[em_MyCommandName]
cmd= "Kommando": kompletter oder relativer Pfad zum gewünschten Programm, oder ein internes cm_xxx oder Benutzer Kommando em_xxx.
param= "Parameter": Parameter zu deinem Programm, bzw. TC-interne Parameter wie zB %P %N %T %L %F %S .....
path= "Startpfad": Arbeitsordner, bleibt meistens leer, da das gerade aktive Panel (Fenster) als Arbeitsverzeichnis verwendet wird.
menu= "Tooltip”: Bezeichnung, eigene Erklärung zu diesem Befehl.
button= "Icondatei": Pfad zur Datei mit dem Icon, zB wcmicons.dll
iconic= "1": Programmfenster minimiert, -oder- "0": Programmfenster maximiert ausführen
Tipps:
Öffne einen existierenden Button per Rechtsklick und "Ändern...",
dann drücke die F1-Taste oder klicke den [Hilfe]-Button und lies weitere Details.
Nur CMD muss hier verwendet werden.
PARAM und ICONIC nur bei Bedarf.
PATH bleibt meistens leer, da das gerade aktive Panel (Fenster) als Arbeitsverzeichnis verwendet wird,
Die Zeilen MENU und BUTTON nur dann, falls dieses BDK auch als Kommando in einem Button verwendet werden soll.
Beispiele
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -totalcmd\usercmd.ini wrote:[em_Rechner]
;Starte den Taschenrechner
cmd=calc.exe
[em_StarteAHKprogramm]
cmd=%Commander_Path%\MyTools\AHK\AutoHotkey.exe
param=%P%O.ahk
menu=Starte die ausgewählte Datei (Pfad \ basename) mit angehängtem ".ahk"
[em_RunNotepad]
cmd=notepad
menu=Starte Notepad.exe
[em_OpenTCFolder]
cmd=explorer %Commander_Path%
menu=Öffne den TC-Ordner in WinExplorer
[em_GoToMyHome]
cmd= CD %USERPROFILE%\My Documents
menu=Wechsele zu den Eigenen Dateien
[em_ReNamer]
;Starte das externe UmbenennTool "ReNamer" mit der Liste der gerade ausgewählten Dateien / bzw. Ordner
cmd=%Commander_Path%\MyTools\ReNamer\ReNamer.exe
Param=/list "%L"
[em_CopyBasenameToClip]
;Eigener Befehl, um die ausgewählten Dateien ohne deren Erweiterungen in die Zwischenablage zu kopieren
;Veraltete Version, geht nicht mit Umlauten. Irgendwo im Forum gibt es ein Update....
cmd=%comspec% /c
param=del %%tmp%%\tctmp & for /f "tokens=*" %%B in ('dir /b %S') do @echo %%~nB >> %%tmp%%\tctmp & type %%tmp%%\tctmp |clip
[em_ExtractToFolder]
; extracting a zip into folder with ZIP-filename as folder name.
; viewtopic.php?p=384429#p384429
; Usage: 7za <command> [<switches>...] <archive_name>
; x: eXtract files with full paths
; -y: assume Yes on all queries
; -o{Directory}: set Output directory
; TC params:
; %O Dateiname ohne Erweiterung (hier für den Ordnernamen verwendet)
; %N Dateiname.ext
; %P für Pfad ist nicht nötig, da der TC sowieso mit dem aktuellen aktiven Pfad arbeitet
cmd="%Commander_Path%\TOOLs\PACKER\7za.exe"
param=x -y -o"%O" %N
; ; Note: %O muss in Anführungszeichengesetzt sein, für den Fall, dass der Archivname Leerzeichen enthält.
; ; Bei %N macht TC das automatisch von sich aus, wenn er ein Leerzeichen entdeckt.
; ; Verwende ein führendes ?-Zeichen als erstes Zeichen beim Parameter, um dies selbst aus zu testen.
; ; (Ja, dieser Automatismus ist manchmal hinderlich weil inkonsequent, da hilf nur "%O.%E" statt %N zu verwenden)
Möglichkeit 2, über den Dialog
(Siehe auch die Anmerkungen oben bei "Möglichkeit 1")
BenutzerDefinierterBefehl // User defined command (UDC) in der usercmd.ini anlegen
- Buttonbar > rechte Maustaste > "Ändern..." drücken.
(Oder Menü "Konfigurieren > Buttonbar ändern...")
- - "Buttonbar ändern" - - -
- - Links den Button "Anfügen" drücken.
(Ansonsten ändert man den vorhandenen letzten Button!)
- - Bei "Kommando" auf das [Lupensymbol] klicken
(Das starte den 'cm_CommandBrowser')
- - - - "Befehl wählen" - - -
- - - - Links, ganz unten die Kategorie "usercmd.ini" auswählen.
(Falls noch keine usercmd.ini existiert, wird sie im TC-Ordner erstellt)
- - - -
- - - - Unten, auf Button [Neu] klicken.
- - - -
- - - - "Neuer Namen für Befehl (em_xyz)" eingeben,
- - - - z.B. em_MeinErstesUDC (das "em_" muss sein!).
- - - - [OK] "Neuer Namen für Befehl (em_xyz)"
- - - - - "Einzelnen Button ändern" - - -
- - - - - Eigenschaften für den Befehl eingeben. Beispiel:
- - - - -
- - - - - Kommando : Notepad.exe
- - - - - Parameter: "%O.txt"
- - - - - Startpfad: freilassen, um immer im aktuell aktiven Ordner zu arbeiten.
- - - - - Icondatei: Notepad.exe <<oder zB wcmicons.dll>>
- - - - - Icon . . : bei mehreren verfügbaren Icons das gewünschte auswählen.
- - - - - Tooltip .: Erstelle Textdatei mit Namen unter Cursor|Neue Zeile|Erneuter Zeilenumbruch.
- - - - -
- - - - - Klicke auf [Hilfe] für weitere Informationen
- - - - - [OK] "Einzelnen Button ändern"
- - - - [OK] "Befehl wählen"
- - [OK] "Buttonbar ändern" >> ACHTUNG!
Mit [OK] wird ein neuer Button angelegt, bzw. der letzte vorhandene Button überschrieben.
Falls man hier aber nur einen UserBefehl (UDC) anlegen wollte, hier mit [Abbrechen] schließen.
Fertig.
- - -
copy&paste Vorlage
Kompletter Artikel unter viewtopic.php?p=346779#p346779 (diese Seite hier)
-- Verwende einen BenutzerDefinierterBefehl // User defined command (UDC) auch als Befehl in einem Button
-- Weise einem Befehl (em_ oder cm_) ein Tastaturkürzel zu
-- Qouting / Anführungszeichen
--
- - -
Siehe auch das Wiki > http://www.ghisler.ch/wikide/index.php/Benutzerdefinierte_Befehle
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Qouting / Anführungszeichen: "...."
Beachte das Pfade mit Leerzeichen und Parameter korrekt gequoted (in Anführungszeichen "..." gesetzt) sein müssen.
Die TC-interne Parameter quoted der TC oftmals selbst, aber nur da wo es laut Herr Ghisler Sinn ergibt.
(das automatische Quoting macht er bei %N, bei %P%N, bei %P%S sowie bei %T%M) Das ist ein Thema für sich. Ausprobieren!
Um konsequent einheitlich zu arbeiten, hilft meistens nur das Entfernen der Anführungszeichen im aufgerufenen Skript und explizit neu setzen.
(((ACHTUNG: beim Aufruf externer Programme/Skripte werden oftmals die (äußeren) Anführungszeichen entfernt, daher muss man diese
deshalb im Parameterfeld doppelt " "----" " (oder bei PowerShell-Skripten gar dreifach: " " "...." " ", oder einfache verwenden: '...') angeben.)))
Schrägstrich hinter Ordnernamen
Bitte beachte, dass der Parameter %P ein abschließenden Backslash "\" anhängt.
Dies passiert auch bei Listen wie %F und %L, das kann man dann benutzen, um in Skripten, Ordner von Dateien unterscheiden zu können.
Ein %P in Anführungszeichen >>> "%P" ergibt somit zB den String "C:\Temp\".
Nun gibt es Porgramme, welche das ' \" ' am Ende als ein escapen des Anführungszeichen sehen,
dass ergibt einen String wie zB ' "C:\Temp ' OHNE abschließendes Anführungszeichen.
Hier kann der folgende Trick helfen: verwende "%P." (mit abschließendem Punkt) ,
dass ergibt den String "C:\Temp\.", welchen das aufgerufene Programm hoffentlich versteht.
Oder hänge einen extra Backslash "\" an: "%P\", was zu "C:\Temp\\" expandiert wird,
was wiederum "escape" das "\"-Zeichen bedeutet, es wird somit aufgehoben und als "C:\Temp" interpretiert.
Es kommt immer auf das aufgerufene Programm bzw. Interpreter an, wie der vom TC übergebene String erkannt und verwertet wird.
Hier hilft oft nur bloßes ausprobieren, oder durchsuche das Forum nach Beispiele.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Verwende einen BenutzerDefinierterBefehl // User defined command (UDC) auch als Befehl in einem Button
Beispiel:
Kommando: em_MeinErstesUDC
Parameter:
Startpfad:
Icondatei: (falls etwas bei "button=..." eingetragen wurde, dann wird diese Icon hier automatisch auch eingetragen,
ansonsten trage hier zB WCMICONS.DLL ein)
Icon:
Tooltip: (falls etwas bei "menu=..." eingetragen wurde, dann wird der Text hier auch automatisch eingetragen,
ansonsten trage hier einen "Text frei nach Wahl" ein)
Wichtig ist, das Kommando über das Lupen-Symbol Icon auszuwählen, und nicht einfach nur den Namen des Kommandos eintragen!
Tipp: einen em_ oder cm_ Befehl kann man auch ins Menü eintragen oder direkt in der TC-Kommandozeile eintippen.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Weise einem Befehl (em_ oder cm_) ein Tastaturkürzel zu
(em_-Kommandos sind TC-interne, z.B.: cm_HelpIndex , und em_Kommandos sind selbst erstellte, z.B.: em_Rechner)
Öffne „Konfigurieren > Einstellungen > Diverses“
* Bei Tastaturkürzel wähle eine freie Kombination
(der Knopf mit dem großen schwarzen Dreieck zeigt die bereits vergebenen an, und im Hilfe-Menü unter "Tastatur" die standardmäßig Vergebenen)
-ODER-
* Bei Alias tippe ein paar Buchstaben oder Ziffern ein, um den Befehl darüber in der TC-Kommandozeile zu starten (zB "help" um em_cm_HelpIndex auszuführen)
*
* Klicke auf das Vergrößerungsglas um ein Kommando auszusuchen
* Tippe em_ (oder cm_) zum Filtern und wähle das gewünschte Kommando (z.B.: cm_HelpIndex oder ein selbst erstelltes "em_Rechner")
* Zurück in Diverses, klicke unbedingt noch auf den [grüne Haken]-Button !!!
* Schließe den Einstellungsdialog mit [OK]
Die TC-internen "CM"_Kommandos findest du in der "TOTALCMD.INC" Textdatei im TC-Ordner.
Deine eigenen cm_ "Benutzer-definierte Kommandos" in der "usercmd.ini" Textdatei, dort wo auch deine wincmd.ini liegt (siehe Hilfe-Menü > Über TC...).
Erklärung zur ALIAS von Claude Charries (Clo):
Since the 7.02 version, TC allows to define “Aliases” with several parameters.
For example : an alias to start another instance of TC with other directories in the panes.
(Note: this is just an example how to use Aliasparameter for Alias, not necessarily an useful command)
Create an User defined “em_xyz” command :
usercmd.ini (or see above for the way via the GUI):
[em_myTC2]
button=C:\Totalcmd\wcmicons.dll
cmd=c:\Totalcmd\TOTALCMD.EXE
param=/L=%A1 /R=%A2
path=c:\Totalcmd
menu=Second instance of TC
Create the alias :
* "Configuration > Options > Misc. >>> Redefine hotkeys (Keyboard remapping)".
* Alias: TC2
* Command : em_myTC2
Click the button with the nick to confirm, then click Apply and OK
Use the alias :
On the command-line, type for instance :
TC2 "O:" "D:\My Documents"
Then, a second instance of TC will start
with the root of the O: drive in the left side panel,
and the folder D:\My Documents in the right side panel.
Or type just TC2 if you doesn't have need to use the parameters.
Feel free to add other parameters :
In the em_TC param=/L=%A1 /R=%A2 /i=%A3
On the command-line type for example : TC2 "O:" "D:\My Documents" "MyCustomTC.ini"
that will start the second instance with another configuration file in addition.
- - -
Beispielhafte Verwendung eines Aliases >> viewtopic.php?p=407035#p407035
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ein paar Anmerkungen, gefunden im Forum
FRAGE:
Kommando: %COMMANDER_PATH%\ADDONS\TCMENU.EXE
Parameter: %APPDATA%\GHISLER\windows.bar
Leider bekomme ich %APPDATA%, als Parameter für den TCmenu Aufruf, vom TC nicht expandiert. Geht das und wie?
ANTWORT:
Nein, geht nicht.
Umgebungsvariablen wie %APPDATA% werden im Parameterfeld nicht aufgelöst um Verwechslungen mit den internen Platzhaltern ( z.B. %P%N ) zu vermeiden
Umgebungsvariablen gehen nur im Feld "Kommando".
Verschiebe die Parameter von Parameter nach Kommando. z.B.
Kommando: %COMMANDER_PATH%\ADDONS\TCMENU.EXE %APPDATA%\GHISLER\windows.bar
Parameter: <leer>
Falls %COMMANDER_PATH% oder %APPDATA% Leerzeichen enthält, müssen Sie noch doppelte Anführungszeichen verwenden:
Kommando: "%COMMANDER_PATH%\ADDONS\TCMENU.EXE" "%APPDATA%\GHISLER\windows.bar"
Parameter: <leer>
Eine Alternative wäre eventuell ein Umweg über COMSPEC.
Prozentzeichen in "Parameter" müssen dabei verdoppelt werden, damit der Kommandointerpreter die Variablen erweitert:
Kommando : %COMSPEC% /c start "" "%COMMANDER_PATH%\ADDONS\TCMENU.EXE"
Parameter: "%%APPDATA%%\GHISLER\windows.bar"
tuska Posted: Tue Oct 20, 2015 22:44 Post subject: Datei per Email senden - Shortcut
http://ghisler.ch/board/viewtopic.php?t=40130
- em_ User-Kommando erstellen:
1. Rechtsklick auf einen freien Platz neben der Symbolleiste > auf "Ändern" drücken
2. Button "Anfügen" drücken
3. Klick auf das Lupen-Symbol
4. Links unter "Kategorie" nach unten scrollen und Klick auf "usercmd.ini"
5. Klick auf Button "Neu..."
6. Neuer Name für Befehl eingeben, zB em_Datei_an_Email, dann OK drücken
7. Kommando, Parameter, Icondatei, Tooltip erfassen (drücke F1-Taste für Hilfe)
______
______Kommando: outlook
______Parameter: /a %P%N
(Siehe support.office.com article/Command-line-switches-for-Outlook)
______Icondatei: C:\WINDOWS\System32\shell32.dll => das Brief-Symbol auswählen
______Tooltip: Strg + E | Datei unter Cursor mit Outlook versenden
______
8. OK, OK, OK drücken
- Tastaturkürzel anlegen:
1. Menü "Konfigurieren" - Einstellungen - Diverses auswählen
2. Tastenkombinationen umdefinieren: zum Beispiel
______anhaken von "Strg +",
______dann rechts außen das Dropdown-Feld anklicken und den Buchstaben "E" auswählen
3. In der Zeile von "Befehl" auf die Lupe klicken
4. In der Kategorie wieder usercmd.ini auswählen
5. Den Befehl "em_Datei_an_Email" anklicken, dann OK-Button drücken
6. ACHTUNG - Wichtig: Jetzt den grünen Pfeil rechts von der Lupe anklicken
7. OK anklicken
FERTIG
Ab jetzt sollte mit dem zeigen auf eine Datei im TC (Markierung nicht erforderlich)
und drücken von Strg + E eine neue Outlook-Nachricht erscheinen,
bei dem automatisch die Datei als Anhang vorhanden ist.
Gruß
Karl
- - -
Icons for your own em_commands in the main menu
viewtopic.php?f=3&t=67366
by *petermad » Mon Mar 30, 2020 13:49
If you want icons for your own em_commands in the main menu, you have to edit myicons.inc accordingly.
The number of the first em_command in your .mnu file will be 10000 in the myicons.inc file,
so if you want to use for example icon 88 in myicons.dll for your first em_command, you have to put:
10000=88
in your myicons.inc file.
...
.....
- - -