Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
googll
Junior Member
Junior Member
Posts: 20
Joined: 2013-02-09, 08:33 UTC

Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist

Post by *googll »

Ich übergebe Variablen im Startermenü an meine Batchdateien.
Da ist grundsätzlich auch der %N Parameter mit bei. In der Hilfe dazu steht:

%N als ebenfalls beliebig oft erlaubter Parameter bewirkt, dass der aktuelle Dateiname (umgeben von einer gestrichelten Box) dort in die Kommandozeile gestellt wird.

Das funktioniert soweit ganz gut, es sind mir nur 2 Dinge dabei aufgefallen:

Ist keine Datei markiert und steht der Cursor bspw auf ".." dann wird kein Leerstring übergeben sondern einfach nichts. Dadurch verrutschen alle weiteren Comandline Argumente um eine Position nach links. Ist das so gewollt? Wäre es nicht besser da einen Leerstring oder wirklich ".." zu übergeben?

Hat man die Ansicht mit STRG-B ist %N der Pfad inkl Datei AB dem aktuellen Pfad. Wäre es hier nicht sinnvoller in dem Fall den kompletten Pfad zu übergeben.

Klar gibt es Workaraounds indem ich eine festen Parameter an einer bestimmten Position übergebe und wenn der halt nach vorne gerutscht ist weiß ich das der %N leer ist, aber das kann es ja eigentlich nicht sein oder?

Ich werte die Comandline übrigens mit Autoit aus, vielleicht liegt es auch daran das %N im ersten Fall verschluckt wird.

Gruß
Christian
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6494
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist

Post by *Horst.Epp »

Da %N für den Namen steht wäre es wohl kaum sinnvoll in manchen Fällen einen kompletten Pfad zu übergeben.
Weder ein Leerstring noch ein simples .. sind ein gültiger Dateiname.
Mit "fehlenden" Parametern muss du in deinem Batch File selbst fertig werden.
Windows 11 Home x64 Version 23H2 (OS Build 22631.3527)
TC 11.03 x64 / x86
Everything 1.5.0.1373a (x64), Everything Toolbar 1.3.3, Listary Pro 6.3.0.73
QAP 11.6.3.2 x64
User avatar
Dalai
Power Member
Power Member
Posts: 9392
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist

Post by *Dalai »

Um das Bearbeiten falscher Dateien zu vermeiden, würde ich immer %P%N (oder "%P%O.%E") übergeben. Die Auswertung der Parameter erfolgt dann im gerufenen Programm/Skript. Die Prüfung auf einen leeren Parameter ist trivial, sowohl in Batch als auch in AutoIT; etwas komplizierter wird es, wenn %P%N übergeben wird und der Cursor auf [..] steht (aber ebenfalls machbar).

Grüße
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
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist

Post by *Stefan2 »

googll wrote: 2020-04-16, 09:07 UTC Ich übergebe Variablen im Startermenü an meine Batchdateien.
Da ist grundsätzlich auch der %N Parameter mit bei. ...
Das funktioniert soweit ganz gut, es sind mir nur 2 Dinge dabei aufgefallen:
Ist keine Datei markiert und steht der Cursor bspw auf ".." dann wird kein Leerstring übergeben sondern einfach nichts.
Dadurch verrutschen alle weiteren Comandline Argumente um eine Position nach links.
Ist das so gewollt? Wäre es nicht besser da einen Leerstring oder wirklich ".." zu übergeben?
Ich würde wahrscheinlich statt "%N" als Parameter "%N???" verwenden und das Ergebnis im Skript überprüfen:
>>> besteht der String nur aus ???, trigger einen Error bzw. Workaround. Ansonsten entferne die drei Fragezeichen und mache mit dem nächsten Schritt weiter.





 
googll
Junior Member
Junior Member
Posts: 20
Joined: 2013-02-09, 08:33 UTC

Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist

Post by *googll »

Ich würde wahrscheinlich statt "%N" als Parameter "%N???" verwenden und das Ergebnis im Skript überprüfen:
>>> besteht der String nur aus ???, trigger einen Error bzw. Workaround. Ansonsten entferne die drei Fragezeichen und mache mit dem nächsten Schritt weiter.
Ja das war auch mein Plan, allerdings etwas anders und zwar "FName=%N" und dann im Script die Commandline durch nen Parser laufen zu lassen, so das selbst die Reihenfolge der Parameter unwichtig ist. Ich hab nur ein Addon Script was mir viel Sachen erledigt, bspw PDF splitten, mergen, Passwörter entfernen, Barcodes aus PDF auslesen usw. Da braucht man je nach Fall eine unterschiedliche Anzahl von Parameter, wenn ich bis jetzt was nicht hatte habe ich auch einfach "" übergeben. Werde das ganze flexibler gestalten.
Nur dachte ich das es evt sinnvoller wäre ein "" zu übergeben wenn halt kein Dateinamen unter dem Cursor steht.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48085
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist

Post by *ghisler(Author) »

Können Sie nicht einfach
"%N"
übergeben, inklusive der doppelten Anführungszeichen? Dann wird bei .. einfach
""
übergeben.
Author of Total Commander
https://www.ghisler.com
Post Reply