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, 8201 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...