Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung Batch & Shell

GELÖST

Umlaute in Dateinamen abändern

Mitglied: joe65

joe65 (Level 1) - Jetzt verbinden

29.05.2014 um 17:20 Uhr, 1569 Aufrufe, 9 Kommentare

Hallo,

gleich vorweg, es gibt bereits so einen Fall vom 07.02.2007 mit den Titel "Umlaute in Dateinamen per Batch ändern", den damals Biber gelöst hat.
Ich habe das Beispiel probiert, es funktioniert aber bei mir nicht. Ich weiß auch nicht was das für Umlaute sein sollen, die dort mit set chars=„ ” � definiert wurden.
Ein kleines "ä" wäre doch eigentlich durch set chars=&#228 (Codepage 850 ist bei mir eingesetellt.) zu setzen.

Mein Problem ist wie folgt:
Ich möchte alle Dateinamen, die die Umlaute ä,Ä,ö,Ö,ü,Ü enthalten durch ae,Ae,oe,Oe,ue,Ue ersetzen.
Dazu habe ich das Beispiel von Jahr 2007 mal angepasst. Funktioniert aber auch nicht.

01.
@echo off 
02.
 
03.
rem ä=&#228 
04.
rem Ä=&#196 
05.
rem ö=&#2 
06.
rem Ö=&#214 
07.
rem ü=&#252 
08.
rem Ü=&#220 
09.
 
10.
set chars=ä Ä  Ö ü &#220 
11.
 
12.
for /f "delims=" %%a in ('dir /s /b D:\Test\*.*') do ( 
13.
  for %%m in (%chars%) do ( 
14.
    echo %%a | find /i "%%m">nul && echo schlecht: [%%m] in %%a 
15.
16.
  call :replace "%%a" 
17.
18.
 
19.
pause>nul 
20.
exit 
21.
 
22.
:replace 
23.
set newname=%1 
24.
set newname=%newname:ä=ae% 
25.
set newname=%newname:Ä=Ae% 
26.
set newname=%newname:=oe% 
27.
set newname=%newname:Ö=Oe% 
28.
set newname=%newname:ü=ue% 
29.
set newname=%newname:Ü=Ue%
Ich verwende als Betriebssystem Windows 7.

Grüße
joe65
Mitglied: Xaero1982
LÖSUNG 29.05.2014, aktualisiert 31.05.2014
Hi,

http://www.administrator.de/forum/umlaute-in-dateinamen-per-batch-ä ...

was genau hast du da angepasst? Du hast doch den Code vom Ersteller kopiert und der ging ja nicht.

Den Code von Biber hast du in meinen Augen nicht mal angetastet...

Gruß
Bitte warten ..
Mitglied: bastla
LÖSUNG 29.05.2014, aktualisiert 31.05.2014
Hallo joe65!

Falls Du nix gegen VBS hättest, könntest Du ev auch in Mit VB Script Sonderzeichen entfernen. eine Möglichkeit finden ...

Grüße
bastla
Bitte warten ..
Mitglied: joe65
30.05.2014 um 13:18 Uhr
Hallo Xaero1982,

ja, ich hab den Code vom Ersteller kopiert und wie folgt angepasst:
- set chars=ä Ä  Ö ü &#220 (habe ich andere Werte genommen, da nach Codepage 850 diese Werte stimmen sollten)
- "delims=" hinzugefügt.

Das habe ich gemacht, weil Biber damals folgendes bemerkt hat:
- zum anderen ist Dein Ansatz eigentlich auch korrekt und lauffähig.
- Ein Klemmer sind die "Dateinamen mit Leerzeichen", die nicht aufgelöst werden. --> deshalb habe ich das "delims=" dazugemacht.

Grüße
joe65
Bitte warten ..
Mitglied: joe65
31.05.2014 um 19:54 Uhr
Hallo bastla,

Danke für den Link auf das VB Script.

Ich glaube, ich habe jetzt auch eine Lösung mittels Batch-Script gefunden. Du kannst sie dir ja mal anschauen. Scheint jedenfalls zu funktionieren.
Die Frage werde ich schließen.
01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
chcp 1252 
04.
 
05.
set "Resultdatei=Umlaute.txt" 
06.
set "LOG_DIR=D:\Meine_Dateien\Log" 
07.
 
08.
for /f "delims=" %%i in ('dir /s /b /a-d d:\test\*.*') do ( 
09.
  set string=%%~nxi 
10.
  set stringnew=%%~nxi 
11.
 
12.
  set find=Ä 
13.
  set replace=Ae 
14.
  call set stringnew=%%stringnew:!find!=!replace!%% 
15.
 
16.
  set find=Ö 
17.
  set replace=Oe 
18.
  call set stringnew=%%stringnew:!find!=!replace!%% 
19.
 
20.
  set find=Ü 
21.
  set replace=Ue 
22.
  call set stringnew=%%stringnew:!find!=!replace!%% 
23.
 
24.
  set find=ä 
25.
  set replace=ae 
26.
  call set stringnew=%%stringnew:!find!=!replace!%% 
27.
   
28.
  set find=ö 
29.
  set replace=oe 
30.
  call set stringnew=%%stringnew:!find!=!replace!%% 
31.
   
32.
  set find=ü 
33.
  set replace=ue 
34.
  call set stringnew=%%stringnew:!find!=!replace!%% 
35.
 
36.
  if !string! NEQ !stringnew! ( 
37.
    echo %%~fi --^> !stringnew! >> %LOG_DIR%\%Resultdatei% 
38.
    rem rename %%~fi !stringnew! 
39.
40.
)
Grüße
joe65
Bitte warten ..
Mitglied: bastla
31.05.2014, aktualisiert um 20:04 Uhr
Hallo joe65!

Sollte so funktionieren, wobei Du eigentlich auf "delayedExpansion" verzichten könntest, indem Du einfach
call set "stringnew=%%stringnew:%find%=%replace%%%"
verwendest.

Mit "delayedExpansion" bräuchtest Du wiederum kein "call" und keine doppelten Prozentzeichen
set "stringnew=!stringnew:%find%=%replace%!"
wobei ich zur ersten Variante tendieren würde (Stichwort: "Dateinamen mit enthaltenen !") ...

Grüße
bastla
Bitte warten ..
Mitglied: joe65
02.06.2014 um 19:47 Uhr
Hallo bastla,

habe die "erste Variante" probiert. Geht bei mir dann aber nicht mehr. Das "delayedExpansion" habe ich dabei mit den REM Kommando auskommentiert.

Ich wollte bei meiner Version noch das "ß" durch "ss" ersetzten und habe deshalb den Code um die Zeilen
01.
set find=ß 
02.
set replace=ss 
03.
call set stringnew=%%stringnew:!find!=!replace!%%
erweitert.
Leider wird mir das "ß" nicht ersetzt. Hast du eine Idee woran das liegt?

Grüße
joe65
Bitte warten ..
Mitglied: bastla
03.06.2014 um 07:35 Uhr
Hallo joe65!

Wie gibt Du das "ß" denn ein? Wenn Du zB
echo "set find=ß">>DeinBatch.cmd
verwendest und im Editor die Zeile dann an die richtige Stelle verschiebst, hast Du zumindest die richtige Codierung ...

Grüße
bastla
Bitte warten ..
Mitglied: joe65
04.06.2014 um 20:30 Uhr
Hallo bastla,

ich verstehe nicht was Du meinst mit "Wie gibst Du das "ß" denn ein".
Laut Codepage 1252 wäre ein "ß" der Char 223. Müsste ich etwa eingeben: set find=223 oder sowas in der Art?

Grüße
joe65
Bitte warten ..
Mitglied: bastla
04.06.2014, aktualisiert um 21:30 Uhr
Hallo joe65!
ich verstehe nicht was Du meinst mit "Wie gibst Du das "ß" denn ein".
Sorry - war auf der falschen Fährte ...

Tatsächlich wird das "ß" zwar ersetzt, aber es scheitert (mir) unerklärlicher Weise
if !string! NEQ !stringnew! (
- nachvollziehbar durch zB
if ß==ss echo gleich
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
CMS
Fertiggestellte Webseite auf Joomla abändern
Frage von gamerffCMS5 Kommentare

Hallo Leute, und zwar habe ich eine Webseite mit unterschiedlichen Editoren erstellt. Kann ich diese jetzt so abändern das ...

Windows Server
Passwortrichtlinien abändern für eine OU
Frage von seppmairhubrWindows Server2 Kommentare

hallo kollegen ich hab da mal wieder ein problem ich habe eine domäne laufen (windows 2008 R2) in der ...

Outlook & Mail
Abwesenheitsassistent keine Umlaute
Frage von Rod160Outlook & Mail1 Kommentar

Hallo liebe Administratoren, habe folgendes Problem: unser Abwesenheitsassistent gibt nach extern keine Umlaute aus, intern funktionieren die Umlaute problemlos. ...

Windows Userverwaltung
Automatisiert Email-Adressen abändern - AD
gelöst Frage von joehuabaWindows Userverwaltung2 Kommentare

Hallo Zusammen, ist es möglich bei ALLEN Usern die eine Email-Adresse im ActiveDirecorty hinterlegt haben, abzuändern ? also von ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...