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

Umlaute in Dateinamen per Batch ändern

Frage Microsoft

Mitglied: tillixx07

tillixx07 (Level 1) - Jetzt verbinden

07.02.2007, aktualisiert 20.02.2007, 19830 Aufrufe, 3 Kommentare

In mehreren Dateinamen die Umlaute ersetzen

Hallo zusammen,

ich habe folgendes Problem:

ich möchte unter Windows 2000/XP in Dateinamen (in einem beliebigen Ordner und allen seinen Unterordnern) Umlaute und das "ß" ersetzen. Ä durch ae, ß durch ss etc. Es handelt sich insgesamt um viele Ordner auf einigen Rechnern, so dass ich gerne eine Automatisierung hätte.

Ich habe hierzu versucht, eine Batchdatei zu schreiben. Leider sind meine Kenntnisse auf dem Gebiet praktisch nicht vorhanden. Die Suche hier im Forum und im Netz war erfolglos, das einzige, was in etwa in meine Richtung geht, ist folgendes:

@echo off
set chars=„ ” � á

for /F %%a in ('dir /b *.*') do (
for %%m in (%chars%) do (
echo %%a | find /i "%%m">nul && echo schlecht: [%%m] in %%a
)
call :replace "%%a"
)

pause>nul
exit

:replace
set newname=%1
set newname=%newname:„=ae%
set newname=%newname:”=oe%
set newname=%newname:�=ue%
set newname=%newname:á=ss%

if NOT "%newname%"=="%1" echo ----- Vorschlag zum Umbenennen: && echo VON : %1 && echo NACH: %newname% && echo.

Doch hier findet zum Einen keine Ersetzung statt, aber entscheiden ist: nach einem Leerzeichen werden die Umlaute etc. nicht gefunden. Bsp.: öä ß.txt, hier wird nur ö und ä gefunden, nicht aber das ß. Ich weiß, Leerzeichen in Dateineme sind schlecht, meinen Mitarbeitern ist das aber nicht abzugewöhnen. Ich hoffe, hier weiß jemand dazu Rat, ich bin für jede Hilfe oder Anregung offen.

Vielen Dank und viele Grüße,
Tillixx
Mitglied: tillixx07
19.02.2007 um 11:07 Uhr
Gibt es wirklich keine Möglichkeit, bestimmte Dateinamen auf einen Rutsch zu verändern? Vielleicht per vbs?

Falls es keine Möglichkeit gibt, würde mir auch diese Information genügen, dann muss ich mich nicht mehr damit herumschlagen. Mir sind daher auch Meinungen willkommen: z.B. Ich denke es geht nicht etc.


Viele Grüße
T.
Bitte warten ..
Mitglied: Biber
19.02.2007 um 19:36 Uhr
Moin tillixx07,

willkommen im Forum.

Zwei Antworten vorab:
- natürlich "gibt es eine Möglichkeit", mit Batch derlei Umbenennungen durchzuführen.
- zum anderen ist Dein Ansatz eigentlich auch korrekt und lauffähig.

Ein Klemmer sind die "Dateinamen mit Leerzeichen", die nicht aufgelöst werden.

Dazu muss nur erweitert werden von
for /F %%a in ('dir /b *.*') do ( [....something with %%a...]
...auf...
for /F "delims=" %%a in ('dir /b *.*') do ( [....something with "%%a"...]

Was die Umlaut-Ersetzung angeht, machst Du Dir das Leben unnötig schwer.
Da kannst mit an Sicherheit grenzender Wahrscheinlichkeit die z.B im Office oder Explorer "entstandenen" Dateinamen, in denen ein über Tastatur eingegebenes ä, ü oder ß enthalten ist, auch im Batch/ am CMD-Prompt als ä, ü oder ß anzeigen lassen.

Und brauchst nicht diesen Umweg über diese kryptischen Zeichen gehen.
Das stellst Du mit dem Befehl CHCP ein.
Am CMD-Prompt: CHCP -------->zeigt die akuelle Codepage an. Normalerweise 850.
Wechseln auf windows/GUI-konforme Codepage: CHCP 1252.

Der Effekt ist der gleiche, ob Du nun mit Codepage 850 schreibst:
01.
>for /f "delims=" %i in ('dir /s /b t:\*stcklistenpr*.*') do @set "old=%~nxi" & @echo rename "%i" !old:=ue! 
02.
rename "t:\Anforderungen\Stcklistenprfung.doc" Stuecklistenpruefung.doc 
03.
--oder --- 
04.
>chcp 1252 
05.
Aktive Codepage: 1252. 
06.
>for /f "delims=" %i in ('dir /s /b t:\*stücklistenprü*.*') do @set "old=%~nxi" & @echo rename "%i" !old:ü=ue! 
07.
rename "t:\Anforderungen\Stücklistenprüfung.doc" Stuecklistenpruefung.doc
Gruss
Biber
Bitte warten ..
Mitglied: tillixx07
20.02.2007 um 11:39 Uhr
Danke für die Antwort! Ich werde es probieren und dann eine Rückmeldung geben.

PS: Guter Tipp mit der Änderung der Codepage, ich hatte aus diesem Grund die Datei in der edit.com und nicht im Notepad o.ä. bearbeitet, da fallen die kryptischen Zeichen ebenfalls unter den Tisch. Für das Posting habe ich dann die fertige Batch mit dem Editor geöffnet, daher diese Zeichen. Ich wollte verhindern, dass die erste Antwort heißt: Klar dass es nicht funktioniert, da falsche Codepage.

Grüße
Tillixx
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Teile eines Dateinamens ändern mit Batch Datei (4)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Registry per Batch abfragen und INI Einträge hinzufügen bzw. ändern (18)

Frage von kampen zum Thema Batch & Shell ...

Batch & Shell
gelöst Erstelldatum vieler Dateien ändern (aus Dateinamen abgeleitet) (11)

Frage von X-Spezi zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
gelöst Benutzer lässt sich nur an einem Clientcomputer anmelden (15)

Frage von Ammann zum Thema Windows Server ...

Batch & Shell
gelöst Gruppenzugehörigkeit von AD Usern ermitteln - die Perfektion fehlt (11)

Frage von Stefan007 zum Thema Batch & Shell ...

LAN, WAN, Wireless
gelöst Netzwerk in 2 Teile trennen (11)

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