Dateinamen mit Punkt einer Variablen zuweisen
Hallo Leute,
Bin neu hier im Forum und hätte eine Frage zur Batchprogrammierung, zu welcher ich im Internet keine befriedigende Antwort gefunden habe:
Ich möchte den Dateinamen (Verzeichnisnamen) aus dem Argument %1 auslesen. Üblicherweise läuft das über %~n1. Leider klappt das nicht, wenn im Dateinamen ein Punkt vor kommt, weil da der Beginn der Extention vermutet wird.
Konkretes Beispiel:
D:\Projekte\01 St.Nikolaus\...
Diesen Pfad sende ich per Rechtsklick an eine Batchdatei und möchte den Namen der letzten Verzeichnisebene einer Variablen für die weitere Verarbeitung zuweisen, also "01 St.Nikolaus". Mit %~n1 bekomme ich nur "01 St".
Wäre toll, wenn jemand ne Lösung hätte.
Danke im Voraus und Grüße
Bin neu hier im Forum und hätte eine Frage zur Batchprogrammierung, zu welcher ich im Internet keine befriedigende Antwort gefunden habe:
Ich möchte den Dateinamen (Verzeichnisnamen) aus dem Argument %1 auslesen. Üblicherweise läuft das über %~n1. Leider klappt das nicht, wenn im Dateinamen ein Punkt vor kommt, weil da der Beginn der Extention vermutet wird.
Konkretes Beispiel:
D:\Projekte\01 St.Nikolaus\...
Diesen Pfad sende ich per Rechtsklick an eine Batchdatei und möchte den Namen der letzten Verzeichnisebene einer Variablen für die weitere Verarbeitung zuweisen, also "01 St.Nikolaus". Mit %~n1 bekomme ich nur "01 St".
Wäre toll, wenn jemand ne Lösung hätte.
Danke im Voraus und Grüße
Please also mark the comments that contributed to the solution of the article
Content-Key: 280753
Url: https://administrator.de/contentid/280753
Printed on: April 26, 2024 at 14:04 o'clock
4 Comments
Latest comment
Moin,
macht das gewünschte. Klingt zwar blöd aber wenn der Verzeichnisname einen Punkt besitzt ist das für Batch eine Dateierweiterung wenn der übergebene String ein Verzeichnis ist.
Gruß jodel32
%~nx1
Gruß jodel32
Zitat von @Danilowitz:
Habe das jetzt nicht getestet, aber was passiert wenn 2 Punkte vorhanden sind?
Müsste man sich nicht irgendwie von hinten bis zum \ durcharbeiten, um die unterste Verzeichnisebene zu greifen?
Nein, als Extension wird immer nur alles ab dem letzten Punkt angesehen, es landet also alles vom Namen in deine Variable, kannst mir ruhig glauben ...Habe das jetzt nicht getestet, aber was passiert wenn 2 Punkte vorhanden sind?
Müsste man sich nicht irgendwie von hinten bis zum \ durcharbeiten, um die unterste Verzeichnisebene zu greifen?
Immer vorausgesetzt du übergibst hier einen Ordnerpfad und keinen Dateipfad.
Beispiel:
Du übergibst folgenden Ordnernamen
C:\pfad\ordnerx.y.z
ordnerx.y.z
So wie es sein soll.