Dateinamen per Batch um x Zeichen am Anfang kürzen
Hallo allerseits,
ich habe ein Problem und das geht so:
Ein Programm erzeugt mir Dateien, die z. B. folgendermaßen aussehen:
94512_09-10-10_10-32-50.txt
Dabei sind die ersten fünf Ziffern ein mehr oder weniger willkürlicher Zahlencode, den keiner brasucht, und nach den Unterstrichen folgen Datum und Uhrzeit. Letzteres ist auch ganz praktisch, denn so könnte man die Dateien schon chronologisch sortiert in einem Ordner verwalten - aber die ersten fünf Zeichen verhindern das leider.
Ich suche also nach einer Möglichkeit, die Datei mittels Batchdatei von den ersten sechs Zeichen zu befreien.
Viele Grüße,
Simon
ich habe ein Problem und das geht so:
Ein Programm erzeugt mir Dateien, die z. B. folgendermaßen aussehen:
94512_09-10-10_10-32-50.txt
Dabei sind die ersten fünf Ziffern ein mehr oder weniger willkürlicher Zahlencode, den keiner brasucht, und nach den Unterstrichen folgen Datum und Uhrzeit. Letzteres ist auch ganz praktisch, denn so könnte man die Dateien schon chronologisch sortiert in einem Ordner verwalten - aber die ersten fünf Zeichen verhindern das leider.
Ich suche also nach einer Möglichkeit, die Datei mittels Batchdatei von den ersten sechs Zeichen zu befreien.
Viele Grüße,
Simon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 126915
Url: https://administrator.de/contentid/126915
Ausgedruckt am: 15.11.2024 um 05:11 Uhr
3 Kommentare
Neuester Kommentar
Hi,
ich weiß du suchst eine Batchlösung, die kann ich nicht anbieten aber sollte sich wiedererwartend keiner finden der das eben Hier reinschreibt. Kann ich ne Lösung in Perl anbieten.
ich weiß du suchst eine Batchlösung, die kann ich nicht anbieten aber sollte sich wiedererwartend keiner finden der das eben Hier reinschreibt. Kann ich ne Lösung in Perl anbieten.
#/usr/lib/perl -w
use strict;
my($pfad,$datei,@dir);
$pfad=".";
opendir(DIR,$pfad)|| die $!;
@dir=grep /\.txt/, readdir(DIR);
foreach $datei (@dir)
{
if ($datei =~ /(\d{5}_)(.*\.txt)/)
{
rename($datei,$2) || die "Fehler beim Umbenennen: $!";
}
}
Moin simonavenia,
wilkommen im Forum.
eine Alternative wäre ein Oneliner vom CMD-Prompt:
[Das ">" vor dem FOR nicht mit eingeben; das ist mein CMD-Prompt]
Der Schnipsel setzt voraus, dass du dich im Verzeichnis der umzubenamsenden Dateien befindest.
Grüße
Biber
wilkommen im Forum.
eine Alternative wäre ein Oneliner vom CMD-Prompt:
(=13:58:44 D:\temp=)
>for %i in (*_??-??-??_*.txt) do @for /f "delims=_ tokens=2,3*" %j in ("%i") do @echo ren "%i" "%j_%k"
ren "94512_09-10-10_10-32-50.txt" "09-10-10_10-32-50.txt"
Der Schnipsel setzt voraus, dass du dich im Verzeichnis der umzubenamsenden Dateien befindest.
Grüße
Biber