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

Dateiname auslesen und nur bestimmte Dateien umbenennen

Frage Entwicklung Batch & Shell

Mitglied: silentmexx

silentmexx (Level 1) - Jetzt verbinden

25.09.2013 um 09:02 Uhr, 1583 Aufrufe, 3 Kommentare

Hallo,

bei mir gibt es in einigen Ordnern Dateien, die mit einem "_" getrennt sind. Einige davon haben 4, andere 5 Textbausteine im Dateinamen. Hier sollten jetzt nur diese Dateien mit 5 Textbausteinen umbenannt werden. Diese soltlen nun mit Hilfe einer Bacth-Datei umbenannt werden.

z.B. gibt es folgende Dateien:

a_b_c_d.jpg
a_b_c_d_e.jpg

Alle Dateien mit 4 Bausteinen im Dateinamen sollen gleich bleiben, bei den Dateien mit 5 Bausteinen sollen 2 Bausteine vertauscht werden, also sollte es dann wie folgt aussehen:

a_b_c_d.jpg
a_b_d_c_e.jpg

Das mit dem Umbennen klappt schon, aber ich weiss nicht genau, wie man bei einer for Schleife die unterschiedliche Zahl der Bausteine, die mit Unterstrichen getrennt sind zählt und nur bei einer bestimmten Anzahl umbennent.

Vielen Dank
silentmexx
Mitglied: LordXearo
25.09.2013, aktualisiert um 09:19 Uhr
Morgen,

also ich bin ja schon lange dafür nicht mehr Batch zu benutzen und auf PowerShell umzusteigen.

01.
$Dateiname = "Datei1_abc_123_xxx_2509.jpg" 
02.
$Dateiname.Split("_") | Measure-Object
Oder
01.
[regex]::matches($Dateiname,"_").count
Viel Erfolg

Xearo
Bitte warten ..
Mitglied: Endoro
25.09.2013, aktualisiert um 10:56 Uhr
Hi, das sollte gehen:
01.
@echo off &setlocal 
02.
for /f "tokens=1-4* delims=_" %%a in ('dir /b /a-d "*_*_*_*_*.jpg"') do ( 
03.
	echo ren "%%a_%%b_%%c_%%d_%%e" "%%a_%%b_%%d_%%c_%%e"  
04.
)
Wenn die Ausgabe iO ist noch das echo löschen.
lg.
Bitte warten ..
Mitglied: colinardo
25.09.2013 um 12:23 Uhr
Moin,
nur der vollständigkeit halber noch ein funktionsfähiges Powershell-Script (Pfad zu den Dateien in Zeile 1 angeben):
01.
$path = 'E:\temp' 
02.
$files = dir $path | ?{$_.Name -match "(.*)_(.*)_(.*)_(.*)_(.*)\.([^\.])+" -and !($_.PSIsContainer)} 
03.
foreach($file in $files){ 
04.
    $newName = $file.Name -replace '(.*)_(.*)_(.*)_(.*)_(.*)\.([^\.]+)','$1_$2_$4_$3_$5.$6' 
05.
    $file | Rename-Item -NewName $newName 
06.
}
Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Windows 7
Dateien umbenennen Unterschiede in Win7 und XP (3)

Frage von mani55 zum Thema Windows 7 ...

Microsoft Office
gelöst Excel VBA - Inhalte und Dateiname von txt-Dateien automatisch in Excel importieren (2)

Frage von Booster07 zum Thema Microsoft Office ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Batch & Shell
gelöst Auslesen und Vergleichen Zweiter CSV Dateien Powershell (7)

Frage von Hainoon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Ubuntu
gelöst Nextcloud 12 Antivirus App for Files (10)

Frage von horstvogel zum Thema Ubuntu ...

Exchange Server
Exchange Postfach leeren - nicht löschen (9)

Frage von AndreasOC zum Thema Exchange Server ...