Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Dateinamen per Batch ändern

Mitglied: hboltz

hboltz (Level 1) - Jetzt verbinden

19.01.2009, aktualisiert 17:59 Uhr, 13734 Aufrufe, 11 Kommentare

Hallo,

ich bin Netzwerker und habe mit Programmierung nicht viel zu tun. Daher ist die Frage vermutlich auch total simpel, aber ich krieg's mit lesen der Beiträge nicht hin! Also, deshalb hier die Problematik:

Ich habe in einem Ordner hunderte Dateien, die folgende Namenskonvention haben:

001-diversenamen.pdf

Ich möchte jetzt in die Mitte des Dateinamens noch etwas einbauen, so daß die Files nachher wie folgt heißen:

001-200901-diversenamen.pdf

Ich weiß, dass es jede Menge Tools gibt, die das problemlos können, aber ich muss das immer wieder machen und das auch noch in verschiedenen Ordnern mit verschiedenen Konventionen, so dass Tools einfach zu aufwändig sind.

Vielen Dank für Eure Hilfe!

HoBo
Mitglied: bastla
19.01.2009 um 18:16 Uhr
Hallo hboltz und willkommen im Forum!

Sollte sich von der Kommandozeile so machen lassen:
for /f "tokens=1* delims=-" %i in ('dir /b "D:\Daten\*-*.pdf"') do @echo ren "D:\Daten\%i-%j" "%i-200901-%j"
Das "@echo" dient dazu, die Umbenennungen zuerst nur anzeigen zu lassen - wenn alles OK aussieht, die gleiche Zeile ohne "@echo" verwenden, um tatsächlich die Namen zu ändern.

Falls Du das in einen Batch verwandeln willst, jeweils %%i und %%j anstatt %i und %j verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: 60730
19.01.2009 um 18:16 Uhr
Servus und willkommen,

zu deiner Frage:

Ich möchte jetzt in die Mitte des Dateinamens noch etwas einbauen, so daß die Files nachher wie folgt heißen:
001-diversenamen.pdf
001-200901-diversenamen.pdf

Mit anderen Worten:

  • die "MItte" ist das 4. Zeichen, oder das Zeichen nach dem Bindestrich?
  • Der Schnippsel, der eingefügt werden soll, ist ein Datum?
  • "Das" Datum von heute?
  • "Das" Datum der Datei?

Gruß
edit... ohne Worte - fast fasta bastla /edit
Bitte warten ..
Mitglied: hboltz
19.01.2009 um 18:35 Uhr
funktioniert auf der Kommandozeile - wie sähe nun der Batchfile aus, wenn ich den schon im entsprechenden Verzeichnis ausführen würde? Danke !!!
Bitte warten ..
Mitglied: hboltz
19.01.2009 um 18:36 Uhr
zu 1 - ja - hinter dem Bindestrich soll was rein
zu 2 - manchmal, aber nicht immer
zu 3+4 - siehe 2

Gruß
HoBo
Bitte warten ..
Mitglied: 60730
19.01.2009 um 18:39 Uhr
Servus again,

naja meine Fragen haben sich ja durch fasta Bastla schon quasi in Luft aufgelöst

Aber zu deiner Frage zurück, bastla hat es ja schon vorzelebriert:

Aus jedem % machst du %%
01.
for /f "tokens=1* delims=-" %%i in ('dir /b "D:\Daten\*-*.pdf"') do @echo ren "D:\Daten\%%i-%%j" "%%i-200901-%%j"
Bitte warten ..
Mitglied: bastla
19.01.2009 um 18:41 Uhr
Hallo hboltz!

Wie schon erwähnt - Unterschied eigentlich nur hinsichtlich %%i, %%j:
01.
@for /f "tokens=1* delims=-" %%i in ('dir /b "D:\Daten\*-*.pdf"') do @echo ren "D:\Daten\%%i-%%j" "%%i-200901-%%j"
Wenn Du den Batch in den entsprechenden Ordner legst, dann:
01.
@for /f "tokens=1* delims=-" %%i in ('dir /b *-*.pdf') do @echo ren "%%i-%%j" "%%i-200901-%%j"
Grüße
bastla
Bitte warten ..
Mitglied: bastla
19.01.2009 um 18:45 Uhr
@TimoBeil
Biber würde Dich jetzt Rechtsüberholer nennen ...

naja meine Fragen haben sich ja durch fasta Bastla schon quasi in Luft aufgelöst
Ganz im Gegentum; die Fragen waren durchaus gerechtfertigt (und hätte ich heute mehr Zeit, wären sie vermutlich so ähnlich auch von mir gekommen) - ich hatte einfach nur aus der Hüfte geschossen und zufällig getroffen ...

Grüße
bastla
Bitte warten ..
Mitglied: hboltz
19.01.2009 um 20:04 Uhr
PRIMA!!! Vielen Dank! Es funktioniert. Allerdings muss ich ehrlich zugeben, dass ich die Syntax nicht verstehe. Hast Du vielleicht einen Link für mich, wo ich die Parameter nachlesen kann und wo diese erklärt werden?

Danke noch mal und Gruß
HoBo
Bitte warten ..
Mitglied: bastla
19.01.2009 um 20:52 Uhr
Hallo hboltz!

Hast Du vielleicht einen Link für mich, wo ich die Parameter nachlesen kann und wo diese erklärt werden?
Einfach einmal "for /f" an der Kommandozeile eingeben und durch die Online-Hilfe "durchbeissen" (analog bei Bedarf "dir /?" ode "ren /?") ...

... ansonsten könnte ich die eine Zeile ja kurz zu erklären versuchen:
for /f "tokens=1* delims=-" %%i in ('dir /b *-*.pdf') do 
Zerlege die einzelnen Zeilen der "dir"-Ausgabe (durch "/b" werden ausschließlich die Namen der Dateien, die dem Schema "*-*.pdf" entsprechen, ausgegeben) anhand des Trennzeichens (= "delimiter") "-", wobei nur in den Teil vor dem ersten Trennzeichen ("1") und den gesamten Rest nach dem ersten Trennzeichen ("*") zerlegt werden soll (auch wenn noch weitere "-" enthalten wären, würde dort nicht mehr getrennt werden) und stelle die beiden Teile als %%i und %%j (= nächster Buchstabe im Alphabet ) zur Verfügung.

ren "%%i-%%j" "%%i-200901-%%j"
Dieser Teil wird für jede gefundene Datei durchgeführt.

Für das Umbenennen muss zunächst der alte Dateiname (grundsätzlich mit Pfad, aber hier nicht erforderlich, da der Batch schon im richtigen Ordner ausgeführt wird) angegeben werden. Dieser besteht aus dem Teil vor dem ersten "-", dem "-" und dem Rest dahinter - daher also "%%i-%%j". Die Anführungszeichen sind eigentlich nur erforderlich, wenn ein Pfad / Dateiname Leerzeichen enthält, aber da sie so gut wie nie stören, setze ich sie sicherheitshalber.

Der zweite Parameter des "ren"-Befehles ist der neue Dateiname (immer ohne Pfad). Dieser wird dann einfach aus den nötigen Teilen zusammengesetzt: %%i (Teil vor dem ersten "-" des ursprünglichen Namens), "-200901-" und "%%j" (Rest des alten Namens nach dem ersten "-").

Grüße
bastla
Bitte warten ..
Mitglied: hboltz
19.01.2009 um 23:24 Uhr
SUPER!!! Danke für die Info! Eine Frage bzw. ein Problem habe ich gerade noch festgestellt: wenn ich den Batch Job 2 mal starte, wird nochmals das Datum eingefügt. Kann man das irgendwie verhindern????

Danke und Gruß
HoBo
Bitte warten ..
Mitglied: bastla
20.01.2009 um 08:00 Uhr
Hallo hboltz!

Da sich ja vermutlich "200901" in "200902" bis "200912", aber wohl auch "201001" etc, weiter entwickeln wird, wäre ev nur ein Umbenennen von Dateien, deren zweiter Namensbestandteil nicht mit "20" beginnt, eine Möglichkeit - ob damit dann Dateien auf der Strecke blieben, weil deren (lt Deinem oben dargestellten Schema) "diversenamen.pdf"-Teil ohnehin bereits mit "20" anfängt, musst Du selbst abschätzen.
for /f "tokens=1* delims=-" %%i in ('dir /b *-*.pdf') do echo %%j|findstr /b "20">nul || ren "%%i-%%j" "%%i-200901-%%j"
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateiname über Batch ändern
gelöst Frage von c64b311ee9Batch & Shell6 Kommentare

Hallo liebe Community, folgendes Problem!: Ich habe einen Ordner mit 500 PDF Dateien. Diese sind nach folgendem Schema aufgebaut. ...

Batch & Shell

Dateinamen mit Batch-Datei ändern - Problem

gelöst Frage von fffffuuuuuuuhhhhBatch & Shell9 Kommentare

Hallo zusammen, ich, stelle regelmäßig .mp3-Dateien her, die folgendermaßen von meinem Audioprogramm beschriftet wird: Das Ergebnis soll aber folgendermaßen ...

Batch & Shell

Teile eines Dateinamens ändern mit Batch Datei

gelöst Frage von fffffuuuuuuuhhhhBatch & Shell4 Kommentare

Hallo, ich, stelle regelmäßig .mp3-Dateien her, die folgendermaßen von meinem Audioprogramm beschriftet wird: Interpret - Titel _xxxxxx000.mp3 die x stehen für eine ...

Batch & Shell

Dateiname ändern, und auch in Datei ändern. evt mit einem Batch

gelöst Frage von helmuthelmut2000Batch & Shell18 Kommentare

Hallo, Ich möchte folgendes umsetzten: Ich habe ein paar Ordner mit Dateien Die Dateien haben folgende Dateinamen, ABC123456.doc ABC123457.doc ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 21 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 TagMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 TagHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux27 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++24 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless22 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...