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, 19362 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 ..
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
Batch & Shell
gelöst Datum per batch ändern in Tagen (2)

Frage von crawnby zum Thema Batch & Shell ...

IDE & Editoren
gelöst IP und DNS per Batch ändern (9)

Frage von andyw5 zum Thema IDE & Editoren ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen umschreiben batch (5)

Frage von jocheng zum Thema Batch & Shell ...

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

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

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 ...