[Code] Script zum Dateinamen ändern

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von lux88, 8. September 2010 .

  1. 8. September 2010
    Script zum Dateinamen ändern

    Hallo zusammen!

    Ich muss gerade ein Praktikum machen und dort viel mit Dateien arbeiten. Ein Arbeitsschritt besteht darin ca. 25 Dateien umzubennen, was (bei bisher 1500 mal) natürlich ziemlich nervig ist.

    Die ursprünglichen Dateien heissen:

    blabla1.tif
    blabla2.tif
    ...
    blabla25.tif

    und müssen in

    IMAGE001.TIF
    IMAGE002.TIF
    ...
    IMAGE025.TIF

    unbenannt werden.

    Ich kenn mich mit sowas leider 0 aus...
    Ists möglich diesen Schritt irgendwie zu automatisieren?
     
  2. 8. September 2010
    AW: Script zum Dateinamen ändern

    Da ist aber noch ein Problem: Die ursprüngliche Datei hat als Zahlenendung die reine Zahl, nach dem Image muss die Zahl aber dreistellig angegeben werden.
     
  3. 8. September 2010
    AW: Script zum Dateinamen ändern

    Saug dir Perl:

    Code:
    #!/usr/bin/perl -w
    
    while(@ARGV) {
     $file = shift;
    
     if($file =~ /([0-9]{1,})\.(tif|TIF)/) {
     $name = "IMAGE";
    
     if($1 > 10) {
     $name .= "00".$1;
     } elsif($1 > 100 && $i <= 10) {
     $name .= "0".$1;
     } else {
     $name .= $1;
     }
    
     $name .= ".tif";
     rename $file, $name;
     }
    }
    Speicher es als renameBla.pl.

    Deine Bat sieht nu so aus:

    Code:
    set RENAMESCRIPT=[B]D:/EIN/PFAD/ZUM/PERL/SCRIPT/[/B]renameBla.pl
    cd [B]D:/EIN/PFAD[/B]
    dir /B *.* > dirTemp.dat
    for /f %i in (dirTemp.dat) do perl %RENAMESCRIPT% %i
    Hab's jetzt net genau getestet, sollte aber funzen.
     
  4. 8. September 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Script zum Dateinamen ändern

    Hab dir mit C# mal schnell ne Exe draus gebastelt.

    No File | xup.in

    Um das Programm zu starten benötigst du das .Net Framework 4.0. Falls du das nciht hast, dann kann ich den Quellcode mal reinstellen, damit es jemand anders vllt mit einem älteren Framework kompiliert. Habe sonst keins installiert. :/

    Einfach Ordner auswählen, in dem die .tif Dateien liegen und den neuen gewünschten Dateinamen (in deinem Fall lediglich das IMAGE). Der Rest geschieht dann automatisch. Habe es oben mit deinen Testdaten probiert und es lief. In deinen vorherigen Dateinamen dürfen vor der Zahl am Ende jedoch nur kleine und große Buchstaben, Unterstrichte und Bindestriche vorkommen. Wenn dir das nicht reicht, dann schreib hier rein, werde es dann erweitern.

    Für die, die es interessiert hier der Code der Rename Funktion:
    Code:
    private int renameFiles(String folder, String newfilename)
     {
     int count = 0;
     Regex re = new Regex(@"^[a-zA-Z_-]+([1-9][0-9]*)\.tif$", RegexOptions.IgnoreCase);
     foreach (string iterFile in Directory.GetFiles(folder))
     {
     String filename = Path.GetFileName(iterFile);
     if (re.IsMatch(filename))
     {
     int no = Convert.ToInt32(re.Match(filename).Groups[1].ToString());
     String zeros = "";
     if (no < 10)
     zeros = "00";
     else if (no < 100)
     zeros = "0";
     File.Move(iterFile, Path.Combine(folder, newfilename + zeros + no.ToString() + ".TIF"));
     count++;
     }
     }
     return count;
     }
    greez
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.