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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 280753
Url: https://administrator.de/contentid/280753
Ausgedruckt am: 29.03.2024 um 01:03 Uhr
4 Kommentare
Neuester Kommentar
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.