Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Umbenennen via Batch - Zeichen am Ende des Dateinamens entfernen

Frage Entwicklung Batch & Shell

Mitglied: fischkopf

fischkopf (Level 1) - Jetzt verbinden

26.03.2009, aktualisiert 18.10.2012, 8362 Aufrufe, 5 Kommentare

Hallo,

ich möchte Dateien in einem Verzeichnis umbenennen, und zwar sollen am Ende des Dateinamens die Zeichenfolgen _1 und _2 entfernt werden. Im Original sehen die Dateien in etwa so aus:

11484023_1.tif
11484644288_1.tif
11484623423422_2.tif

etc. Mit Eurer Hilfe (eine frühere Anfrage von mir...) habe ich bereits folgende Batch entwickelt:

01.
@echo off & setlocal  
02.
Set "myTIFDir=c:\test99"  
03.
FOR %%i in ( "%myTIFDir%\*.tif") do call :RenameWithUnderscore "%%~nxi"  
04.
exit 
05.
goto :eof  
06.
 
07.
:RenameWithUnderscore 
08.
Set "oldname=%~1"  
09.
IF "%oldname:~2,1%" NEQ "_" (  
10.
ren "%myTIFDir%\%oldname%" "AB_CDE_%oldname%"  
11.
12.
goto :eof
Die bisherige Batch funktioniert tadellos, es wird geprüft, ob an der dritten Stelle des Dateinamens bereits ein Unterstrich steht, wenn nicht wird vorne an den Dateinamen eine fixe Zeichenfolge angeklemmt (im Beispiel "AB_CDE_". Nun muss ich auch noch prüfen, ob am Ende des Dateinamens (also vor dem Punkt) eine Zeichenfolge wie _1 oder _2 steht. Ich hatte mir das zunächst einfach vorgestellt und die Idee, einfach eine rename-Zeile nach dem ersten rename in der Sub einzufügen und nach der Zeichenfolge _1. oder _2. zu suchen und diese durch . (Punkt) ersetzen zu lassen. Leider war ich damit nicht erfolgreich, könntet Ihr mich auf das richtige Gleis bringen und Tipps dazu gebe? Danke!
Mitglied: bastla
26.03.2009 um 10:49 Uhr
Hallo fischkopf!

Sollte sich (soferne der Underscore immer das vorletzte Zeichen ist) so machen lassen:
01.
@echo off & setlocal  
02.
Set "myTIFDir=c:\test99" 
03.
FOR %%i in ( "%myTIFDir%\*.tif") do call :RenameWithUnderscore "%%i" 
04.
goto :eof  
05.
 
06.
:RenameWithUnderscore 
07.
set "newname=%~n1" 
08.
if "%newname:~2,1%" NEQ "_" set "newname=AB_CDE_%newname%" 
09.
if "%newname:~-2,1%"=="_" set "newname=%newname:~,-2%" 
10.
ren %1 "%newname%%~x1" 
11.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: fischkopf
26.03.2009 um 12:40 Uhr
Hallo bastla,
klasse - klappt bestens. Tausend Dank!

fischkopf
Bitte warten ..
Mitglied: Iceman
30.03.2011 um 14:04 Uhr
Hey.

und wie müsste der Code aussehen, wenn man am Anfang der Datei zB. 8 Zeichen entfernen möchte.

Bsp.
Variante Datei!

Alte Datei:
08158150Dokument.txt

Neue Datei:
Dokument.txt
Variante Ordner!

Alter Ordner:
08158150Programmordner

Neuer Ordner:
Programmordner
Wie sehe das aus?
Besten dank im Voraus.

PS. wenn ich eine neue Frage erstellen soll, dann bitte anmailen. Danke

Gruß Ice
Bitte warten ..
Mitglied: bastla
30.03.2011 um 17:14 Uhr
Hallo Iceman!

Ja, ein neuer Thread wäre sinnvoll - dort kannst Du dann auch die näheren Umstände erklären (zB ob es, wie bei den hier besprochenen Dateien ein Kennzeichen dafür gibt, dass sie bereits umbenannt wurden, oder ob es etwa immer 8 Ziffern sind, die am Anfang stehen und entfernt werden sollen bzw ob sich die Unterteilung anhand eines Trennzeichens machen ließe) ...

Grüße
bastla
Bitte warten ..
Mitglied: Iceman
31.03.2011, aktualisiert 18.10.2012
Moin bastla...

Das hat sich erledigt.
Habe meine Fragen soweit beantwortet

Ordnernamen kürzen
http://www.administrator.de/forum/ordnernamen-k%c3%bcrzen-143385.html

Dateinamen per Batch um x Zeichen am Anfang kürzen
http://www.administrator.de/forum/dateinamen-per-batch-um-x-zeichen-am- ...

Gruß Ice
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateien umbenennen - ersten Zeichen entfernen (4)

Frage von jan999 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateiname über Batch ändern (6)

Frage von c64b311ee9 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateiname entsprechend einem um x-Ebenen übergeordeten Ordnernamen umbenennen (3)

Frage von Booster07 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte