Page 1 of 1

Benutzerschaltfläche mit "<selitem>";

Posted: 05 Feb 2021 01:02
by Helmex
Hallo.
Ich möchte ein externes Programm im folgenen Format starten:
"C:\Mein Programm\Programm.exe" "C:\Datei1.txt" "C:\Datei2.txt" (markierte Dateien)

Ich habe folgendes in die Benutzerschaltfläche eingetragen:
run """C:\Mein Programm\Programm.exe """"<selitem>"""
Damit übergebe ich allerding nur einen Parameter. Um nun 2 Parameter zu übergeben habe ich das versucht:
run """C:\Mein Programm\Programm.exe """""<selitem>;""""
und das funktioniert leider nicht...

Was mache ich falsch?

VG Helmex

Re: Benutzerschaltfläche mit "<selitem>";

Posted: 05 Feb 2021 01:17
by highend
<selitem> ist maximal die erste selektierte Datei.

<selitems> enthält dagegen alle...

Code: Select all

run """C:\Mein Programm\Programm.exe"" <selitems>";

Re: Benutzerschaltfläche mit "<selitem>";

Posted: 05 Feb 2021 21:31
by Helmex
TOP - Besten Dank auch.
VG

Re: Benutzerschaltfläche mit "<selitem>";

Posted: 07 Feb 2021 20:16
by Helmex
Der Skript funktioniert bei Ordnern bestens. Aber wie übergebe ich den Pfadanteil
wenn Dateien gewählt wurden?
Bei eines Datei klappt dies ganz gut

Code: Select all

if (exists(<curitem>) == "1") {#103} else {#101}
Abei wie extrahiere ich den Pfad aus <selitem> ?

Re: Benutzerschaltfläche mit "<selitem>";

Posted: 07 Feb 2021 20:32
by highend
Sowas in der Art?

Code: Select all

$items = trim(report("{fullname}{dir \}<crlf>", 1), <crlf>, "R");
    $items = regexreplace(regexreplace($items, "^(.+\\)(.*)?$", "$1"), "\\$");
    copytext $items;

Re: Benutzerschaltfläche mit "<selitem>";

Posted: 14 Feb 2021 00:56
by Helmex
Hi highend,
klappt super, vielen Dank!
Nun muß ich die Einträge formatieren.
Das Ergebnis muß so aussehen:
run "C:\Mein Programm\Programm.exe" "Ordner1" "Ordner2" (mit ")
Ich habe mit gettoken($items,1,<crlf>) die einzelnen Zeilen zu extrahieren versucht,
aber leider findet gettoken <crlf> nicht.
Gibt es eine Möglichkeit die Zeilen direkt abzufragen? zB. line1 ... line2

Ich habe noch diesen Code probiert:

Code: Select all

$items = trim(report("{fullname}{dir \}<crlf>", 1), <crlf>, "R");
    $o1 = substr(gettoken($items,1,<crlf>),0,strpos(gettoken($items,1,<crlf>),"\",-1));
    $o2 = substr(gettoken($items,2,<crlf>),0,strpos(gettoken($items,2,<crlf>),"\",-1));
    text """C:\mein Programm.exe"" ""$o1"" ""$o2"""
Was hälst du davon?

Re: Benutzerschaltfläche mit "<selitem>";

Posted: 14 Feb 2021 01:21
by highend
Du meinst das?

Code: Select all

$items = <get SelectedItemsPathNamesSlashed>;
    $items = regexreplace($items, "^(.+)\\(.*?)?(?=\r?\n|$)", "$1"); // Paths only, no file part(s)
    $items = '"' . replace($items, <crlf>, '" "') . '"';
    text """C:\mein Programm.exe"" $items";
SelectedItemsPathNamesSlashed braucht v21.30.0039...

Re: Benutzerschaltfläche mit "<selitem>";

Posted: 15 Feb 2021 13:55
by Helmex
PERFEKT! Vielen Dank