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
Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist
Moderators: Hacker, Stefan2, white
Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist
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.
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, Version 24H2 (OS Build 26100.3915)
TC 11.55 RC1 x64 / x86
Everything 1.5.0.1391a (x64), Everything Toolbar 1.5.2.0, Listary Pro 6.3.2.88
QAP 11.6.4.2.1 x64
TC 11.55 RC1 x64 / x86
Everything 1.5.0.1391a (x64), Everything Toolbar 1.5.2.0, Listary Pro 6.3.2.88
QAP 11.6.4.2.1 x64
Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist
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
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist
Ich würde wahrscheinlich statt "%N" als Parameter "%N???" verwenden und das Ergebnis im Skript überprüfen: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?
>>> besteht der String nur aus ???, trigger einen Error bzw. Workaround. Ansonsten entferne die drei Fragezeichen und mache mit dem nächsten Schritt weiter.
Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist
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.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.
Nur dachte ich das es evt sinnvoller wäre ein "" zu übergeben wenn halt kein Dateinamen unter dem Cursor steht.
- ghisler(Author)
- Site Admin
- Posts: 50505
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Re: Startermenu Parameter %N: Verhalten wenn keine Datei ausgewählt ist
Können Sie nicht einfach
"%N"
übergeben, inklusive der doppelten Anführungszeichen? Dann wird bei .. einfach
""
übergeben.
"%N"
übergeben, inklusive der doppelten Anführungszeichen? Dann wird bei .. einfach
""
übergeben.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com