2 Parameter an ein Kommandozeilentool übergeben?

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
dirk.meinert
New Member
New Member
Posts: 1
Joined: 2007-09-23, 16:39 UTC

2 Parameter an ein Kommandozeilentool übergeben?

Post by *dirk.meinert »

Hallo,
ich habe hier ein kleines Kommandozeilentool, das als Parameter 2 Dateinamen erwartet. Dieses würde ich gerne aus dem TC heraus per Button oder Tastenkürzel starten und dabei die beiden Dateien als Parameter übergeben, die momentan markiert sind.

Kann mir jemand sagen, wie die Parameterzeile in diesem Fall aussehen müsste? Ich habe nur rausgefunden, dass ich mit %N den momentanen Dateinamen übergeben kann; das ist aber leider ja nur einer….

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

Post by *Dalai »

Welche Parameter erwartet denn das Kommandozeilen-Programm? Davon hängt es doch ab, wie die Parameter-Zeile aussehen muss.
Dateinamen ist zu ungenau. Ist es Quelle und Ziel oder was anderes?

Welche Parameter in dem Ändern-Dialog eines Buttons möglich sind, steht in der TC-Hilfe unter Punkt 3a (Benutzeroberfläche, dann weiterklicken zur Buttonbar und dort Dialogbox zum Ändern).

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
StatusQuo
Power Member
Power Member
Posts: 1524
Joined: 2007-01-17, 21:36 UTC
Location: Germany

Post by *StatusQuo »

2dirk.meinert
Kann mir jemand sagen, wie die Parameterzeile in diesem Fall aussehen müsste? Ich habe nur rausgefunden, dass ich mit %N den momentanen Dateinamen übergeben kann; das ist aber leider ja nur einer….
Bei der Definition der Buttons sollte ein Druck auf F1 die passende Hilfe öffnen, da sind die möglichen Variablen aufgelistet/erklärt.
Parameter %S wird vermutlich das Gesuchte sein (%P%S, wenn zusätzlich der Pfad angegeben werden soll):
(Helpfile) wrote:%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.
%S10 fügt die Namen der ersten 10 markierten Dateien (maximal) in die Kommandozeile ein. Erlaubt es, die Anzahl der an das Programm übergebenen Dateien zu begrenzen. Beliebige Integerwerte>0 sind zulässig.

Hinweise: %N bzw. %M fügt den langen Dateinamen ein, %n bzw. %m den kurzen (8.3) DOS-Namen. %P und %T fügen den langen Pfadnamen ein, %p und %t den kurzen. (dasselbe für %o, %e und %s)
Wenn Sie %P, %p, %T oder %t direkt vor %S bzw. %s schreiben, dann werden alle Dateinamen inkl. komplettem Pfad eingefügt. Beispiel: %P%S fügt alle langen Dateinamen inkl. langem Pfad ein.
BTW, die History.txt sagt etwas anderes zur maximalen Länge der Kommandozeile ( :?: ):
(HISTORY.TXT) wrote:07.02.07 Added: Button bar, start menu: New parameters %S and %s pass list of selected files (long names/short names) to the called program. Note that the command line cannot be longer than 8191 characters on Windows XP, 2047 on Windows 2000/NT, and 259 characters on Windows 9x
Who the hell is General Failure, and why is he reading my disk?
-- TC starter menu: Fast yet descriptive command access!
User avatar
dumbledore954
Senior Member
Senior Member
Posts: 373
Joined: 2006-11-27, 08:10 UTC
Location: Hessisch Sibirien (Germany)

Post by *dumbledore954 »

Befindet sich der eine Dateiname im Quell-Fenster und der andere im Ziel-Fenster, verwende ich folgende Parameter:

Code: Select all

%P%N %T%M
Funktioniert ohne Probleme; eventuell notwendige Anführungszeichen setzt der TC (verwendete Version 7.02a) selbst.
Gruß Michael

WinXPPro SP3, TC 7.56a
#7640 Personal licence
pschwalm
Junior Member
Junior Member
Posts: 10
Joined: 2003-04-15, 20:32 UTC

Post by *pschwalm »

Ich benutze auch gern das Startmenü, um Kommandozeilentools zu starten. Dabei habe ich Schwierigkeiten, die Anführungszeichen richtig zu platzieren, die man für Dateinamen mit Leerstellen braucht.

Ich habe das Gefühl, dass TC immer das erste Leerzeichen verschluckt, das zweite aber an das Tool weitergibt, wenn man Parameter in Anführungszeichen einschließt (z.B. so: "--psrc=%P"), so dass das Programm dann keine vernünftige Parameterliste bekommt.

Das automatische Einfügen von Anführungszeichen durch TC funktioniert auch nicht. Davon abgesehen wäre es vielleicht auch gar nicht sinnvoll, weil die Anführungszeichen keine Eigenschaften der Dateinamen sind, sondern nur für die Kommandozeilenparser relevant sind, die normalerweise nach der Regel parsen: bei jeder Leerstelle beginnt ein neues Argument.

Ich hab's vorläufig aufgegeben und kann das Tool eben nur benutzen, wenn die Pfade keine Leerzeichen haben.
matbal
Member
Member
Posts: 182
Joined: 2004-11-28, 19:40 UTC

Post by *matbal »

Mir erscheint dein Parameter "--psrc=%P" etwas unlogisch.
Gehören die Anführungszeichen nicht um den Pfadnamen?

--psrc="%P"

Wenn ich es richtig mitbekommen habe, fügt der Total Commander nur bei kompletten Dateien (%N, %M, %S) oder Pfaden mit Dateien (%P%N, %T%M) die Anführungszeichen hinzu, wenn Leerzeichen enthalten sind.

Gruß
User avatar
Hacker
Moderator
Moderator
Posts: 13144
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

pschwalm,
z.B. so: "--psrc=%P"
Versuche es mal mit

Code: Select all

"--psrc=%P\"
HTH
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.
Post Reply