Kann man im Windows Explorer nach einzelnen Buchstaben suchen?
Hallo zusammen Ich habe die Aufgabe bekommen, im Windows Explorer alle ä,ö oder ü in Dateinamen in ae, oe oder ue zu ändern. Allerdings befinden sich im betroffenen Ordner etwa 1000-2000 Dateien. Es wäre sehr mühsam, wenn ich jede Datei einzeln durchgehen müsste, auf der Suche nach einem Umlaut. Weiss jemand, ob ich irgendwie nach solchen einzelnen Buchstaben suchen kann, die nicht unbedingt am Anfang des Namens stehen? Mit dem Suchfeld habe ich es bereits versucht, aber da kommen wenn ich z.B. ü eingebe auch alle Namen, die ein u beinhalten. Vielen Dank und Gruss
2 Antworten
Die "Such"funktion des Explorers ist zumindest sehr kontraintuitiv.
Deshalb mache ich so was entweder über die Kommandozeile oder hacke mir auf die Schnelle ein kleines Tool (Skript oder kompiliert) zusammen.
Dies sollte mit einer Kombination aus FOR /R /F, %~ und REN funktionieren.
(Ich probier mal aus, wie der Befehl aussehen muss.)
Tool ist einfacher.
Quick'n'dirty-Lösung für Visual Studio C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace gf_20160226_renamefiles {
class Program {
static private string replaceUmlauts(string name) {
return name.
Replace("Ä", "Ae").
Replace("Ö", "Oe").
Replace("Ü", "Ue").
Replace("ä", "ae").
Replace("ö", "oe").
Replace("ü", "ue").
Replace("ß", "ss");
}
static private void replaceFileSystemUmlautsRecursive(string path) {
var dirNames=Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly);
foreach (string subPath in dirNames) {
var folder=Path.GetFileName(subPath);
var folderNew=replaceUmlauts(folder);
var subPathNew=Path.Combine(path, folderNew);
if (subPath != subPathNew) { Directory.Move(subPath, subPathNew); };
replaceFileSystemUmlautsRecursive(subPathNew);
};
var fileNames=Directory.GetFiles(path, "*", SearchOption.TopDirectoryOnly);
foreach (string fileNameFull in fileNames) {
var fileName=Path.GetFileName(fileNameFull);
var fileNameNew = replaceUmlauts(fileName);
var fileNameFullNew=Path.Combine(path, fileNameNew);
if (fileNameFull != fileNameFullNew) { File.Move(fileNameFull, fileNameFullNew); };
};
}
static void Main(string[] args) {
// replaceFileSystemUmlautsRecursive(@"D:\temp\20160226\Rename");
replaceFileSystemUmlautsRecursive(args[0]);
}
}
}
Das kannst du mit Joe Rename umbenennen.
http://www.chip.de/downloads/Joe-letzte-Freeware-Version_13004904.html
Im Explorer kannst du erst mal alle Dateien auflisten mit ä ö usw.
Du bekommst zwar dann auch Dateien mit ae oe etc. Aber das macht nichts für Joe Rename .
Du ziehst dann einfach alle Dateien per Drag und Drop rüber ins Fenster von Joe Rename .
Natürlich vorher die Einstellungen richtig erstellen bei Suchen und Ersetzen.
Auch erkennt Joe Rename, wenn sich z.B. Wörter wie Möhre bzw. Moehre im selben Ordner befindet.
Das siehst du dann im Fenster besonders gekennzeichnet, wenns dann nicht umbenennt werden kann.
Vielleicht erst mal sinnvoll im kleinen Umfang zu testen, damit nichts schief geht.