[Bug?] Parameter der Buttonbar

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
DoubleT
Member
Member
Posts: 163
Joined: 2003-11-22, 02:21 UTC
Location: Germany

[Bug?] Parameter der Buttonbar

Post by *DoubleT »

Bei der übergabe von Parametern in der Buttonbar scheint es ein Problem mit Spaces in Dateinamen zu geben. Selbst wenn ich die Parameter Quote, werden diese nicht an das aufgerufene Programm weitergereicht.
Parameter: "%T%M" "%P%N" und "%T%S" "%P%S" funktionieren nicht, trotz der explizit angegebenen Quotes.

Markierte Dateien test.ini und test (1).ini erzeugen den Aufruf: xyz.exe x:\test.ini y:\test y:\(1).ini

Dann ist da noch ein Quelle/Ziel Problem mit dem Parameter %S. Markierte Dateien aus dem Zielfenster werden nicht übernommen, dafür wird aber zweimal die Datei aus dem Quellverzeichnis durchgereicht.

TC 7.02 & 7.02a
#5576 Personal licence
#155652 Commercial licence

Planung bedeutet, den Zufall durch den Irrtum zu ersetzten.
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Da scheint die englische Hilfe aktueller als die deutsche zu sein:
totalcmd.chm wrote:%P%S insert the names of all selected files into the command line, with full path. Names containing spaces will be surrounded by double quotes. Do NOT put quotes around %P%S yourself!
der Hinweis fehlt in der deutschen Hilfe.

HTH,
Holger
DoubleT
Member
Member
Posts: 163
Joined: 2003-11-22, 02:21 UTC
Location: Germany

Post by *DoubleT »

Hm ok, würde funktionieren, wenn das beschriebene Problem mit dem Parameter %S nicht wäre. Zumindest geht damit jetzt erstmal meine alte Variante (%M, %N) mit lst2str wieder wie gewohnt.
#5576 Personal licence
#155652 Commercial licence

Planung bedeutet, den Zufall durch den Irrtum zu ersetzten.
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

So wie ich es verstehe (vielleicht ist die Hilfe da nicht ganz eindeutig?), ist %S die Liste aller markierten Files+Verzeichnisse im Source-Panel.
Bei %T%S %P%S werden die Übergabeparameter an das aufzurufende Programm zusammengesetzt aus dem Target-Path und der Liste der im Source-Panel markierten Files,
gefolgt von einer zweiten Liste zusammengesetzt aus SourcePath und im Source-Panel markierten Files.

Beispiel (nur markierte Files aufgeführt):

Links( c:\DIR_A ):
a.x
b.x

Rechts( c:\DIR_B ):
c.x
d.x

- Rechts ist aktives Panel.
Aufruf mit %T%S %P%S ergibt folgende Übergabeparameter:

Code: Select all

c:\DIR_A\c.x   c:\DIR_A\d.x   c:\DIR_B\c.x   c:\DIR_B\d.x
- Links ist aktives Panel.
Aufruf mit %T%S %P%S ergibt folgende Übergabeparameter:

Code: Select all

c:\DIR_B\a.x   c:\DIR_B\b.x   c:\DIR_A\a.x   c:\DIR_A\b.x
Ich mag mich irren (bin gerne bereit dazuzulernen).

Gruß,
Holger
DoubleT
Member
Member
Posts: 163
Joined: 2003-11-22, 02:21 UTC
Location: Germany

Post by *DoubleT »

@HolgerK
Dank dir für die ausführliche Beschreibung!
Es tritt genau der Effekt aus deinem Beispiel auf. Das sehe ich als Bug und auch nicht sonderlich sinnvoll an.
HolgerK wrote:So wie ich es verstehe (vielleicht ist die Hilfe da nicht ganz eindeutig?), ist %S die Liste aller markierten Files+Verzeichnisse im Source-Panel.
Also bei mir steht da...
%S fügt die Namen aller markierten Dateien in die Kommandozeile ein. Namen, die Leerzeichen enthalten, werden von doppelten Anführungszeichen umgeben. Bitte beachten Sie die maximal mögliche Länge der Kommandozeile: 32767 Zeichen.
... also nichts von einem aktivem/nicht aktivem Panel.


Dass das auch so kompliziert sein muss. :?
Eigentlich möchte ich nur 1-3 (markierte) Dateien an meinen Differ weiterleiten. Das ist derzeit einfach nicht möglich.
#5576 Personal licence
#155652 Commercial licence

Planung bedeutet, den Zufall durch den Irrtum zu ersetzten.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50809
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

%S funktioniert in der Tat nur mit dem aktiven Panel. Einen Befehl fürs inaktive Panel gibt es leider noch nicht.

%P%S darf nicht in "" geschrieben werden. Wieso? Das würde folgendes Resultat geben (bei 4 Dateien):
"c:\DIR_A\c.x c:\DIR_A\d.x c:\DIR_B\c.x c:\DIR_B\d.x"
Author of Total Commander
https://www.ghisler.com
DoubleT
Member
Member
Posts: 163
Joined: 2003-11-22, 02:21 UTC
Location: Germany

Post by *DoubleT »

ghisler(Author) wrote:%S funktioniert in der Tat nur mit dem aktiven Panel. Einen Befehl fürs inaktive Panel gibt es leider noch nicht.
Ok, wie wäre es dann mit einem %D für Destination (inaktives Panel), das die gleichen Eigenschaften wie %S für Source hat? Der Code wäre dann ja identisch, halt nur für das andere Panel. Das würde mir ungemein helfen!

Ups, ich sehe gerade, das %D schon vergeben ist. Na irgendein Buchstabe wird schon noch frei sein/passen. :)
#5576 Personal licence
#155652 Commercial licence

Planung bedeutet, den Zufall durch den Irrtum zu ersetzten.
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Wie wäre es denn mit den Vorschlägen die hier bereits mal gemacht worden sind:

Wiki: Unified Parameters System: Additional modifiers: prefixes

also: %!S

Gruß,
Holger
DoubleT
Member
Member
Posts: 163
Joined: 2003-11-22, 02:21 UTC
Location: Germany

Post by *DoubleT »

Jau, wie geil ist das denn!!!
Das ist doch genau das was man braucht.

++Support
#5576 Personal licence
#155652 Commercial licence

Planung bedeutet, den Zufall durch den Irrtum zu ersetzten.
Post Reply