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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 192734
Url: https://administrator.de/contentid/192734
Printed on: April 25, 2024 at 10:04 o'clock
4 Comments
Latest comment
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