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

Batch - Alle Dateien umbenennen

Frage Entwicklung Batch & Shell

Mitglied: kruczie

kruczie (Level 1) - Jetzt verbinden

19.05.2006, aktualisiert 22.05.2006, 7801 Aufrufe, 3 Kommentare

Hallo Kollegen, ich stehe im Moment tierisch auf dem Schlauch dabei will ich etwas ganz einfachens machen und zwar: per Batch in einem Ordner aus allen Dateinamen alle Zahlen entfernen,
z.B. aus einem Dateinamen 123-qwer-tzui-20060514.* soll qwer-tzui.* werden.

Hoffe auf Unterstützung
Mitglied: Biber
19.05.2006 um 16:53 Uhr
Moin kruczie,

tja, wenn Du bei Dir standardmäßig "DelayedExpansion" eingestellt hast (so wie ich), dann macht das folgender lässig hingeworfener Oneliner vom CMD-Prompt aus:

01.
@For /L %z in (0,1,9)do @For /f "delims=" %i in ('dir /b /A:-d ')  do @(echo %~ni|findstr [%z]>nul) && Set "oldname=%~ni" && @ECHO ren "%~nxi" "!oldname:%z=!%~xi"
...wobei das @ECHO natürlich nur zur Demo ist.

Als Batch und mit ein paar Zeilenumbrüchen sieht das so aus (auch hier das ECHO löschen zum scharfmachen)

01.
::----snipp RemoveDigitsInFilename.bat 
02.
@echo off & setlocal EnableDelayedExpansion 
03.
For /L %%z in (0,1,9) do (  
04.
   For /f "delims=" %%i in ('dir /b /A:-d ')  do ( 
05.
     (echo %%~ni|findstr [%%z]>nul) && Set "oldname=%%~ni" && @echo ren "%%~nxi" "!oldname:%%z=!%%~xi" 
06.
)) 
07.
::----snapp RemoveDigitsInFilename.bat
Hope that Helps
Biber
Bitte warten ..
Mitglied: Biber
20.05.2006 um 11:03 Uhr
Kleiner Nachtrag....

Der Batch oben works as designed, ist aber aus zwei Gründen verbesserungswürdig.
a) strategisch
So wie die Schleifen aufgebaut sind, wird ja nicht nur jede zu entfernende Ziffer im Dateinamens-Text einzeln verarbeitet,
sondern auch jeweils einzeln mit "ren altername neuername" umbenannt.
Beispiel: "Bild_1239.jpg" wird umbenannt in "Bild_239.jpg" in "Bild_39.jpg" in "Bild_9.jpg" in "Bild_".jpg.
Was alles den Anforderungen entspricht, aber natürlich stinkelangsam ist.
In der Praxis sollten also die Ziffernentfernung aus dem Dateinamen und das tatsächliche Umbenennen in zwei Schritten erfolgen.
"Rename" erst, wenn der endgültige Name feststeht.
Das hätte auch den Vorteil, dass siche eine andere "vorletzte" Umbenennungsregel einbauen lässt,
nämlich z.B. das Entfernen aller Bindestriche bis auf einen.
(Ersetze nach der Ziffernentfernung alle "--" durch "-" oder ähnliches : %oldname:--=-%)

b) konzeptionell
Von Design her greift der Batch auch zu kurz IMHO.
Ist zwar im ersten Schritt die richtige Idee, alle Ziffern zu entfernen... und alle Ziffern kann ich wie oben mit einer FOR /L ...IN..DO-Anweisung abfackeln.
In der Praxis werden aber nicht nur Ziffern stören, sondern auch Punkte, Striche und Unterstriche, die in der Regel ja bei Datums-Stamps im Dateinamen mit verwendet werden.
Deshalb würde ich statt der FOR /L -Anweisung (die kann nur Zahlen/Ziffern verarbeiten) besser eine normale FOR-Anweisung empfehlen.
01.
::----snipp RemoveDigitsInFilename.bat 
02.
@echo off & setlocal EnableDelayedExpansion 
03.
For %%z in (1 2 3 4 5 6 7 8 9 0 - _ .) do ( 
04.
   For /f "delims=" %%i in ('dir /b /A:-d ')  do ( 
05.
     (echo %%~ni|findstr [%%z]>nul) && Set "oldname=%%~ni" && ren "%%~nxi" "!oldname:%%z=!%%~xi" 
06.
)) 
07.
::----snapp RemoveDigitsInFilename.bat
Folgendes Beispiel ersetzt dann beliebige Zeichen:
01.
Z:\RemoveDigits> 
02.
$cmd$dir /b 
03.
bollerwagen-12.04.2006.txt 
04.
20051227weihnachtessen.jpg 
05.
 
06.
Z:\RemoveDigits> 
07.
$cmd$\RemoveDigitsInFilename.bat 
08.
Z:\RemoveDigits> 
09.
$cmd$dir /b 
10.
bollerwagen.txt 
11.
weihnachtessen.jpg
Der erste gepostete Schnipsel hätte -as designed - aus "bollerwagen-12.04.2006.txt" die Datei "bollerwagen-...txt" erzeugt.

Grüße
Biber
Bitte warten ..
Mitglied: kruczie
22.05.2006 um 10:11 Uhr
Hallo Biber,

perfekt - vielen Dank dafür.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Windows Server
Zuordnung von Netzlaufwerken mit Hilfe von Batch-Dateien (4)

Frage von doc-jochim zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...