TC portable mit Verzeichnis XY (relativer Pfad!) öffnen

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Marty
Junior Member
Junior Member
Posts: 4
Joined: 2011-07-08, 10:30 UTC

TC portable mit Verzeichnis XY (relativer Pfad!) öffnen

Post by *Marty »

Hallo,

ich habe meine Total-Commander-Installation mit Hilfe des tc2usb-Tools auf meinem USB-Stick mit PortableApps installiert.

Nun möchte ich das Programm per Kommandozeilenparameter in einer Batch- bzw. AutoHotkey-Datei so starten, dass automatisch ein (bzw. zwei [links und rechts]) bestimmte(r) Ordner auf meinem Stick aufgerufen werden.

In der Wiki habe ich folgende Syntax gefunden:

Code: Select all

totalcmd.exe [/o] [/n] [/L=LW:\Verzeichnis1] [/R=LW:\Verzeichnis2] [/i=name.ini] [/F=ftpname.ini]
Leider steht in der Wiki aber ausdrücklich, dass hier "der komplette Pfad inkl. Laufwerk angegeben werden" muss.
:arrow: Ich möchte aber keine absoluten, sondern relative Pfade setzen, um beispielsweise den Ordner "Dokumente" im Hauptverzeichnis meines USB-Sticks öffnen zu lassen. Dies soll unabhängig vom Laufwerksbuchstaben funktionieren.

Mit %COMMANDER_PATH% oder %COMMANDER_DRIVE% in den Parametern gelang es mir leider nicht... :?

Wie muss meine Batch- bzw. AutoHotkey-Datei also aussehen? :?:

Vielen Dank im Voraus!
JOUBE
Power Member
Power Member
Posts: 1675
Joined: 2004-07-08, 08:58 UTC

Re: TC portable mit Verzeichnis XY (relativer Pfad!) öffnen

Post by *JOUBE »

Marty wrote:Batch

Code: Select all

totalcmd.exe /L=%~d0\Verzeichnis1 /R=%~d0\Verzeichnis2
Voraussetzung: Batch ist auf dem USB-Stick.

Für Portabilität: Ini im Tc-Verzeichnis (UseIniInProgramDir=7)

JOUBE
Marty
Junior Member
Junior Member
Posts: 4
Joined: 2011-07-08, 10:30 UTC

Post by *Marty »

Vielen Dank, JOUBE, die Batch-Datei läuft auf Anhieb! :D

Leider bleibt jedoch das Konsolenfenster die ganze Zeit geöffnet, bis ich Total Commander wieder schließe, was doch sehr stört... :?

Deswegen würde ich doch lieber AutoHotkey benutzen...

:arrow: Wie müsste auf Grundlage dieses Batch-Skripts das AutoHotkey-Skript aussehen? Vor allem - was ich bisher nicht geschafft habe: Wie können die Parameter übergeben werden? :?:

Nochmals vielen Dank!
User avatar
ate
Senior Member
Senior Member
Posts: 274
Joined: 2003-12-17, 22:48 UTC

Post by *ate »

Vielleicht noch ein start davorsetzen, also

start totalcmd.exe ....

Mit autohotkey kenne ich mich nicht so aus. Allerdings gab es schon diverse Startprogramme (z.B. TCStartWithCommand) für den TC, die eigentlich alle Wünsche (auch nach portabler Anwendung) erfüllen sollten ...
Marty
Junior Member
Junior Member
Posts: 4
Joined: 2011-07-08, 10:30 UTC

Post by *Marty »

ate, vielen Dank für den Hinweis!

Leider bleibt mein Problem bei "TCStartWithCommand" bestehen, da dieses Tool die Kommandozeilenparameter lediglich weiterreichen kann... :?

Wie könnte man bloß die Parameter für die relativen Pfade in AutoHotkey setzen...??? :?
JOUBE
Power Member
Power Member
Posts: 1675
Joined: 2004-07-08, 08:58 UTC

Post by *JOUBE »

Code: Select all

start "" totalcmd.exe /L=%~d0\Verzeichnis1 /R=%~d0\Verzeichnis2 %1 %2 %3 %4 %5 %6 %7 %8 %9
Parameter in Batches auswerten/weiterreichen mit: %1, %2 (bis %9, ggf "%1","%2" ... )

"Start" in Batches möglichst immer so beginnen: start "" .... (start ... (statt start "" ...) führt ggf (für Laien) zu schwer zu findenden Fehlern)

JOUBE
User avatar
Dalai
Power Member
Power Member
Posts: 9990
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

JOUBE wrote:Parameter in Batches auswerten/weiterreichen mit: %1, %2 (bis %9, ggf "%1","%2" ... )
Oder noch viel einfacher und kürzer, in einem Rutsch:

Code: Select all

start "" totalcmd.exe /L=%~d0\Verzeichnis1 /R=%~d0\Verzeichnis2 %*
%* enthält alle Parameter (geht aber erst ab WinNT oder Win2k).

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Stiltzkin
Member
Member
Posts: 194
Joined: 2004-09-10, 17:15 UTC

Post by *Stiltzkin »

wieso nicht einmal die tabs speichern und per klick laden?

geht mit relativen pfaden und kann immer wieder neu geladen werden wenn sich die tabs im verlauf des arbeitens ändern.
Marty
Junior Member
Junior Member
Posts: 4
Joined: 2011-07-08, 10:30 UTC

Post by *Marty »

Danke an JOUBE, Dalai und Stiltzkin für die Antworten! :D

Im AutoHotkey-Forum habe ich dank Benutzer fredchf die Lösung für ein AHK-Skript gefunden, mit dem ich, ausgehend vom Ordner, in dem das Skript liegt (%A_ScriptDir%), tatsächlich jeden Ordner auf dem Stick wählen und relative Pfade verwenden kann, um Total Commander damit zu starten:

Code: Select all

SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; run, totalcmd.exe /L=%A_ScriptDir%\..\Verzeichnis1 /R=%A_ScriptDir%\..\..\Verzeichnis2
run, "%A_ScriptDir%\TOTALCMD.EXE" /L="%A_ScriptDir%\..\Verzeichnis1" /R="%A_ScriptDir%\..\..\Verzeichnis2"
(Verzeichnis1 eine Ebene höher)
(Verzeichnis2 zwei Ebenen höher)

Vielen Dank nochmals!
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Marty,
Mit %COMMANDER_PATH% oder %COMMANDER_DRIVE% in den Parametern gelang es mir leider nicht..
Das sollte eigentlich auch gehen. Der TC löst die Variablen beim Start selbst auf.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
User avatar
Dalai
Power Member
Power Member
Posts: 9990
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Hacker wrote:
Mit %COMMANDER_PATH% oder %COMMANDER_DRIVE% in den Parametern gelang es mir leider nicht..
Das sollte eigentlich auch gehen. Der TC löst die Variablen beim Start selbst auf.
Aber bis TC dran ist, sind die Variablen bereits von der Shell ausgewertet und haben damit keinen Inhalt. Wenn der TC das wirklich kann, dann bringt evtl. ein Schutz der Prozentzeichen etwas:

Code: Select all

%%COMMANDER_PATH%%
# oder
^%COMMANDER_PATH^%
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Es klappt schon wie von Hacker beschrieben.
Man beachte den Unterschied der Ausgaben von

Code: Select all

echo %windir%
und

Code: Select all

echo %Diese_Umgebungsvariable_Ist_Nicht_Definiert%
Wenn der Batch vom Explorer aufgerufen wird ist %COMMANDER_PATH% nicht definiert, TC weiß aber dann trotzdem damit etwas sinnvolles anzufangen ;)

Gruß
Holger
User avatar
Dalai
Power Member
Power Member
Posts: 9990
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Tatsächlich, ihr habt recht, es funktioniert:

Code: Select all

start "totalcmd" "%ProgramFiles%\Total Commander\TOTALCMD.EXE" /L="%COMMANDER_PATH%"
Hab ich wohl mit der Bash verwechselt, die wirklich nicht exisitierende Variablen als leeren Inhalt ausgibt ;) (hab in den letzten Tagen wohl zuviel Bash programmiert :lol:).

Dann lag es vielleicht an fehlenden Anführungszeichen um %COMMANDER_PATH% wie in obigem Beispiel.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Post Reply