Batch-Datei zum Umbenennen von Dateien

  • Hm, schade... Ich dachte es sei recht einfach zu machen... Schade...

  • Auch dir kann geholfen werden! Saug dir bei http://www.scriptics.com den Windows-Installer von "Tcl/Tk 8.3.x" (oder einen Anderen, hauptsache binary release) aus dem Netz und installier das Ding. Das Skript code ich dir und schicke es per Email. Vielleicht habe ich den Installer auch noch irgendwo auf der HDD...


    Musst nur ein paar Angaben machen ob Name1, Name2, NUMMER und NAME von variabler Länge sind, ob es dabei dann um 100 Dateien oder nur um Eine von den Längen der NAME NUMMER Name1 Name2 Teilen geht. Und ob die Teile der Dateinamen immer per Leerzeichen getrennt sind usw. Am besten wäre eine Dateiliste...


    MfG Anticro

  • Zitat

    Original geschrieben von anticro
    Auch dir kann geholfen werden! Saug dir bei http://www.scriptics.com den Windows-Installer von "Tcl/Tk 8.3.x" (oder einen Anderen, hauptsache binary release) aus dem Netz und installier das Ding. Das Skript code ich dir und schicke es per Email. Vielleicht habe ich den Installer auch noch irgendwo auf der HDD...


    Musst nur ein paar Angaben machen ob Name1, Name2, NUMMER und NAME von variabler Länge sind, ob es dabei dann um 100 Dateien oder nur um Eine von den Längen der NAME NUMMER Name1 Name2 Teilen geht. Und ob die Teile der Dateinamen immer per Leerzeichen getrennt sind usw. Am besten wäre eine Dateiliste...


    MfG Anticro


    Erstmal danke... :)


    Geht die die 8.4er auch? Kannst du mir den direkten Downloadlink geben? bzw. sagen welchen in nehmen soll, nicht damits noch der falsch ist (wegen dem binary release)


    Zu den Angaben: Quelle (Beispieldatei)


    Microsoft Word - Rechnung RE2004-0000 Vorname Nachname_doc.pdf


    Ziel:


    Rechnung RE2004-0000 Vorname Nachname.pdf


    Info zur Quelldatei: Der Anfang ist IMMER identisch (Microsoft Word - Rechnung RE), danach varibabel. 2004, 2005, ... jedoch sind es IMMER 4 Stellen. Danach kommt der Bindestrich auch der ist fix. Danach kommen 4 Ziffern, deren Wert auch verschieden ist. Jedoch fixe 4 Stellen. Nach einmal Leerzeichen kommt jetzt ein Vorname, der variabel ist, sowohl im Inhalt als auch in der Länge. Selbiges gilt für den Nachname. (evtl. würde hier manchmal etwas 3. kommen, wäre das auch möglich? Falls nicht könnte man es einrichten, dass IMMER 2 Worte sind, nicht mehr, nicht weniger). Danach das _doc, das einfach entfernt werden soll. Und fertig ;)


    Kannst du damit was anfangen?

  • Schau mal hier:


    http://www.tinyapps.org/file.html


    Da gibt es zwei Programme. Das erste ist sicher flexibler, setzt aber voraus, dass du regex kannst. Probier doch mal ob du mit dem zweiten klar kommst, ansonsten schreibt dir sicher gerne jemand eine entsprechende regex für das erste Prog.

    "That's not a hair question. I'm sorry." - 01/31/07 - Never forget!

  • Thanks. Ersteres (regex) sagt mir nix. Noch nie gehört.


    Wie gesagt, wenn mir einer eine fertige Lösung machen könnte wärs top, eine Aufwandsentschädigung soll nicht das Problem sein.

  • Hi


    folgendes VB-Script (ja, man kann das auch für anderes verwenden als für Viren ;-) sollte es eigentlich tun...


    Kopier den Teil zwischen den "snip-Linien" in eine Datei mit Endung .VBS
    und doppelklicke sie. Darauf werden alle Dateien im Ordner C:\temp\PDF umbenannt die "_doc" im Filenamen haben. Den Zielordner kannst du auf der ersten Zeile anpassen (ordner="C:\temp\PDF")


    Ist halt ein riesengebastel, aber sollte funktionieren.


    Gruss
    Kermit



    '---------------------------------------------snip---------------------------------------------
    ordner = "C:\temp\pdf"
    Dim fs, o, d, da, s
    dim FullFile,dashfound,firstPartFile,pdfFound,dstName,ordner
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set o = fs.GetFolder(Ordner)
    Set da= o.Files


    For Each d in da
    FullFile= d.name
    if instr(Fullfile, "_doc") > 0 then
    dashfound = instr(FullFile,"- ") +2
    firstPartFile = mid(FullFile, dashfound, len(FullFile))
    pdfFound = instr(firstPartFile,"_doc") -1
    dstName = left(firstpartfile, pdffound) & ".pdf"
    fs.MoveFile (ordner & "\" & FullFile), (ordner & "\" & dstName)
    end if

    Next
    '---------------------------------------------snip---------------------------------------------

  • Wegen Tcl sieht's auf Scriptics etwas mager aus, wie es aussieht bieten sie selbst keine Binarys mehr an, nur noch über ActiveTcl - die sich das Compilieren scheinbar bezahlen lassen. Ich habe aber meinen alten Installer gefunden (mit Win95/98/XP getestet). Für den Fall, du willst Tcl benutzen, schick mir doch eine PN mit deiner Emailadresse. Wenn du das VBScript schon einsetzt ist es auch okay weil etwas weniger Aufwand, denn VBScript ist ja auf Windows schon vorinstalliert.


    MfG

  • Das VBscript klappt leider nicht, meldet einen Fehler in Zeile 3 :(


    Von dem her wäre ich immer noch an einer funktionierenden Lösung interessiert ;)

  • Zitat

    Das VBscript klappt leider nicht, meldet einen Fehler in Zeile 3


    Das Wort ordner in Zeile 4 gehört noch in die Zeile 3, dann funktionierts.


    Ich könnte dir was in C oder C++ programmieren, hab allerdings keinen C/C++ Compiler für Windows, das kompilieren müsstest du selber machen.


    Aber ich finde das VB-Script gut, ich würds einsetzen!

    r=3,16 km


    prepaidinfo.de Prepaidtarife, Roamingpreise, Preise und Einstellungen für MMS und WAP, Übernahmeformulare

  • Als C/C++ Compiler für Windows kannst du Den von CygWin benutzen, ist gratis. Aber dann ist Tcl/Tk sicherlich doch noch besser weil es flexibler ist. Muss halt nur installiert werden...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!