Windows Batchscript
Hallo
Ist folgendes Problem mit einem Windows Batchscript zu lösen?
Ich habe eine Datei, nennen wir sie mal dies_ist.nur.ein_test.datei.doc, welche manipuliert und in eine Variable gespeichert werden sollte.
Der gewünschte Wert der Variable, anhand des oben aufgeführten Beispiel=dies_ist.nur.ein_test
D.h., .doc und .datei müssen weg.
Vielen Dank für Eure Inputs.
Ist folgendes Problem mit einem Windows Batchscript zu lösen?
Ich habe eine Datei, nennen wir sie mal dies_ist.nur.ein_test.datei.doc, welche manipuliert und in eine Variable gespeichert werden sollte.
Der gewünschte Wert der Variable, anhand des oben aufgeführten Beispiel=dies_ist.nur.ein_test
D.h., .doc und .datei müssen weg.
Vielen Dank für Eure Inputs.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 192734
Url: https://administrator.de/forum/windows-batchscript-192734.html
Ausgedruckt am: 11.04.2025 um 15:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo santamaria, willkommen im Forum!
Davon ausgehend, dass die Teilstrings immer durch Punkte voneinander getrennt sind, kann man sich die Optionen der FOR Variablen zu Nutze machen.
Grüße
rubberman
Davon ausgehend, dass die Teilstrings immer durch Punkte voneinander getrennt sind, kann man sich die Optionen der FOR Variablen zu Nutze machen.
@echo off &setlocal
set "oldname=dies_ist.nur.ein_test.datei.doc"
for %%i in ("%oldname%") do for %%j in ("%%~ni") do set "newname=%%~nj"
echo "%newname%"
pause
Grüße
rubberman
Hallo santamaria,
wenn du dir die Hilfe zu FOR ansiehst ...
... , hast du ziemlich am Ende folgende Erklärung:
Das bedeutet, jeweils der letzte durch einen Punkt getrennte Teilstring wird als Dateierweiterung angenommen. Durch die Option
Grüße
rubberman
wenn du dir die Hilfe zu FOR ansiehst ...
FOR /?
... , hast du ziemlich am Ende folgende Erklärung:
%~nI - erstellt nur den Dateinamen von %I.
~n
wird dann nur der Dateiname erweitert. Das Ganze zwei mal in Folge ausgeführt, ergibt das gewünschte Ergebnis.Grüße
rubberman