Da muss ich diesen alten Thread mal wieder aufwärmen:
Auch ich fände es für Sonderfälle extrem nützlich, wenn TC bei den internen Verknüpfungen außer %1 für den Namen mit Pfad auch noch ein %N für den nackten Dateinamen ohne Pfad kennen würde. Bittebitte...
Grüße, Hans
Interne Verknüpfungen
Moderators: Hacker, Stefan2, white
Hallo J.Bl,
ja, dein Tool hatte ich gesehen und als etwas umständlichen Workaround auch erwogen. Aber bei mir ist das etwas verwickelter:
1. TC läuft hier in Wine unter Linux. Das geht nicht perfekt, aber besser, als man fürchten würde. Aber DOS-Batches mit DOS-Parametern nicht so recht... Überhaupt ist Wine noch ein recht bewegliches Ziel.
In TCs Internen Verknüpfungen kann man durchaus direkt Linux-Programme aufrufen, aber die können mit dem Windows-Pfad natürlich nix anfangen. Bräuchten meist auch nur den Dateinamen.
Gäbe es ein %F, dann wäre ich mit einer Internen Verknüpfung wie zB
/usr/bin/libreoffice "%F" schon fertig.
Es gibt zwar in Wine ein Tool winepath, das wandelt den Windows-Pfad um in einen gültigen Linux-Pfad, aber mit dem lästigen Vorspann /home/username/.wine/dosdevices/s:/einPfad/eineDatei.ext
Das kann ich nicht gebrauchen, denn:
2. Die mich interessierenden Pfade sind nicht lokal, sondern zu einem Samba-Server. Bei anderen Kollegen mit Windows ist der als Netzlaufwerk S: eingebunden. Sehr viele Dateien enthalten nun Hyperlinks auf file:///S:/einPfad/eineDatei.ext . Würde ich nun eine Datei unter dem obigen winepath editieren, wären alle Links für meine Kollegen kaputt.
3. Also muss ich den Server in meinem Linux-System als /S: mounten und die Dateien in diesem Pfad editieren, dann stimmen die Hyperlinks sowohl unter Linux als auch Windows.
4. Also muss ich den Windowspfad S:\einPfad\eineDatei.ext (den TC sieht) beim Programmstart umformen zu /S:/einPfad/eineDatei.ext oder in den nackten Namen, je nach Programm.
Mein Basteldrumrum sieht nun so aus:
ein Shellscript /usr/local/bin/runlinuxapp enthaltend:
und eine sed-Kommandodatei /usr/local/bin/sedcmd_wp2f enthaltend:
Das strippt mir einfach den Pfad vom Namen. Eine alternative sed-Kommandodatei /usr/local/bin/sedcmd_wp2lp enthaltend:
wandelt den Pfad wie oben beschrieben um. (das sed-Kommando muss in eine Datei ausgelagert werden, weils inline mit den ganzen Quote-Zeichen schief geht)
Nun endlich funktioniert mit diesen drei Zeilen eine Interne Verknüpfung wie zB für *.odt
/usr/local/bin/runlinuxapp "libreoffice" "%1"
oder für *.pdf
/usr/local/bin/runlinuxapp "evince" "%1"
mit beliebigen Linux-Programmen problemlos.
Liebe Grüße, Hans
ja, dein Tool hatte ich gesehen und als etwas umständlichen Workaround auch erwogen. Aber bei mir ist das etwas verwickelter:
1. TC läuft hier in Wine unter Linux. Das geht nicht perfekt, aber besser, als man fürchten würde. Aber DOS-Batches mit DOS-Parametern nicht so recht... Überhaupt ist Wine noch ein recht bewegliches Ziel.
In TCs Internen Verknüpfungen kann man durchaus direkt Linux-Programme aufrufen, aber die können mit dem Windows-Pfad natürlich nix anfangen. Bräuchten meist auch nur den Dateinamen.
Gäbe es ein %F, dann wäre ich mit einer Internen Verknüpfung wie zB
/usr/bin/libreoffice "%F" schon fertig.
Es gibt zwar in Wine ein Tool winepath, das wandelt den Windows-Pfad um in einen gültigen Linux-Pfad, aber mit dem lästigen Vorspann /home/username/.wine/dosdevices/s:/einPfad/eineDatei.ext
Das kann ich nicht gebrauchen, denn:
2. Die mich interessierenden Pfade sind nicht lokal, sondern zu einem Samba-Server. Bei anderen Kollegen mit Windows ist der als Netzlaufwerk S: eingebunden. Sehr viele Dateien enthalten nun Hyperlinks auf file:///S:/einPfad/eineDatei.ext . Würde ich nun eine Datei unter dem obigen winepath editieren, wären alle Links für meine Kollegen kaputt.
3. Also muss ich den Server in meinem Linux-System als /S: mounten und die Dateien in diesem Pfad editieren, dann stimmen die Hyperlinks sowohl unter Linux als auch Windows.
4. Also muss ich den Windowspfad S:\einPfad\eineDatei.ext (den TC sieht) beim Programmstart umformen zu /S:/einPfad/eineDatei.ext oder in den nackten Namen, je nach Programm.
Mein Basteldrumrum sieht nun so aus:
ein Shellscript /usr/local/bin/runlinuxapp enthaltend:
Code: Select all
#!/bin/bash
"$1" `echo "$2" | sed -f /usr/local/bin/sedcmd_wp2f`
Code: Select all
s/[A-Z]:\\.*\\//
Code: Select all
s%\\%\/%g
s%^%/%
Nun endlich funktioniert mit diesen drei Zeilen eine Interne Verknüpfung wie zB für *.odt
/usr/local/bin/runlinuxapp "libreoffice" "%1"
oder für *.pdf
/usr/local/bin/runlinuxapp "evince" "%1"
mit beliebigen Linux-Programmen problemlos.
Liebe Grüße, Hans
Re: Interne Verknüpfungen
kleine dezente Frage, wenn ich das hier hab als internes commando :
usercmd.ini
und ich möcht "em_innounpsub" als interne Verknüpfung benutzen,
das die Exedatei-Name, als Name-Directory erstellt und dort rein extrahiert,
funktioniert auch im UNC-Path über SMB (hab Fedora-Samba)
Wie mach ich das ?
die Antwort könnte man auch gleich in's wiki aufnehmen,
nehm ich wahrscheinlich auch gleich auf bei mir unter TC Gebrauchsanweisung..
(Interne Commandos (em_*/usercmd.ini) als interne Verknüpfung benutzen)
könnte mir da vielleicht jemand helfen ?
Danke
liebe Grüße
Blacky
edit: p.s.: hab ein Icon gebastelt für Innounp, iss auf sourceforge unter diskussions
https://sourceforge.net/p/innounp/discussion/353235/thread/4d86c8fab6/
usercmd.ini
Code: Select all
[em_innounp]
cmd=%Commander_Path%\proggs\innounp\innounp.exe
Button=%Commander_Path%\proggs\innounp\innounp.ico
Param=? %S -x -d%T
menu="InnoUnp"
[em_innounpsub]
cmd=%Commander_Path%\proggs\innounp\innounp.exe
Button=%Commander_Path%\proggs\innounp\innounp.ico
Param=? %S -x -d%P%O
menu="InnoUnp"
[em_innounpepl]
cmd=%Commander_Path%\proggs\innounp\ISUnp.exe
Button=%Commander_Path%\proggs\innounp\ISUnp.exe
Param=? %S
menu="InnoUnp Explorer"
das die Exedatei-Name, als Name-Directory erstellt und dort rein extrahiert,
funktioniert auch im UNC-Path über SMB (hab Fedora-Samba)
Wie mach ich das ?
die Antwort könnte man auch gleich in's wiki aufnehmen,
nehm ich wahrscheinlich auch gleich auf bei mir unter TC Gebrauchsanweisung..
(Interne Commandos (em_*/usercmd.ini) als interne Verknüpfung benutzen)
könnte mir da vielleicht jemand helfen ?
Danke

liebe Grüße
Blacky
edit: p.s.: hab ein Icon gebastelt für Innounp, iss auf sourceforge unter diskussions
https://sourceforge.net/p/innounp/discussion/353235/thread/4d86c8fab6/
Meine Blackysgate.de/net
Ma' Personal licence : already one. Hab auch eine
Mein Computer : Einer/once ??? bahh, Rz/Data Centre !
Kitchen, Liv.room, TV, Schlafz.. Sch...
BS/OS: Win3.1/7, Fedora a. other, Reactos
Ma' Personal licence : already one. Hab auch eine
Mein Computer : Einer/once ??? bahh, Rz/Data Centre !
Kitchen, Liv.room, TV, Schlafz.. Sch...
BS/OS: Win3.1/7, Fedora a. other, Reactos