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

gelöst Problem mit bestimmten Umlaut

Mitglied: joe65

joe65 (Level 1) - Jetzt verbinden

11.06.2014, aktualisiert 17.06.2014, 1115 Aufrufe, 6 Kommentare

Hallo,

ich muss nochmal hier nachfragen, da ich mit einen Umlaut (=ß) ein Problem habe und ich nicht weiterkomme.
Über eine Batch-Routine versuche ich Umlaute (Ä,Ö,Ü,ä,ö,ü,ß) umzubenennen. Das klappt auch, bis auf den Umlaut "ß".

Folgenden Code dazu:
01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
cls 
04.
mode con: cols=130 lines=50 
05.
chcp 1252 
06.
 
07.
call :RenameUmlaute ad 
08.
call :RenameUmlaute a-d 
09.
pause 
10.
exit /b 
11.
 
12.
:RenameUmlaute 
13.
for /f "delims=" %%i in ('dir /s /b /%1 d:\test') do ( 
14.
  set stringorg=%%~nxi 
15.
  set stringnew=!stringorg! 
16.
 
17.
  call set stringnew=%%stringnew:Ä=Ae%% 
18.
  call set stringnew=%%stringnew:Ö=Oe%% 
19.
  call set stringnew=%%stringnew:Ü=Ue%% 
20.
  call set stringnew=%%stringnew:ä=ae%% 
21.
  call set stringnew=%%stringnew:ö=oe%% 
22.
  call set stringnew=%%stringnew:ü=ue%% 
23.
  call set stringnew=%%stringnew:ß=ss%% 
24.
 
25.
  echo stringorg=!stringorg! 
26.
  echo stringnew=!stringnew! 
27.
  pause 
28.
 
29.
  if not !stringorg!==!stringnew! ( 
30.
    rename "%%~fi" "!stringnew!" 
31.
32.
)
Obwohl auch bei "ß" die Variablen stringorg und stringnew verschieden sind wird der rename Befehl trotzdem nicht ausgeführt.
Hat jemand eine Idee woran das liegen mag?
Ich arbeite mit Windows 7.

Grüße
joe65
Mitglied: Xaero1982
11.06.2014, aktualisiert um 23:20 Uhr
Nabend,

also ich bastel nun schon nen bisschen dran rum, aber letztlich steh ich da wo Bastla auch im anderen Beitrag stand:

01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
 
04.
setlocal&for /f "tokens=2 delims=:" %%a in ('chcp') do (set /a oemcp=%%~na&chcp 1252>nul) 
05.
for /f "tokens=1-7" %%a in ('echo Ä Ö Ü ä ö ü ß^&chcp %oemcp%^>nul') do ( 
06.
set au=%%a&set ou=%%b&set uu=%%c&set al=%%d&set ol=%%e&set ul=%%f&set sz=%%g) 
07.
(endlocal&set Ä=%au%&set Ö=%ou%&set Ü=%uu%&set ä=%al%&set ö=%ol%&set ü=%ul%&set ß=%sz%) 
08.
 
09.
 
10.
call :RenameUmlaute ad 
11.
call :RenameUmlaute a-d 
12.
pause 
13.
exit /b 
14.
 
15.
:RenameUmlaute 
16.
for /f "delims=" %%i in ('dir /s /b /%1 test') do ( 
17.
  set stringorg=%%~nxi 
18.
  set stringnew=!stringorg! 
19.
 
20.
  call set stringnew=%%stringnew:%Ä%=Ae%% 
21.
  call set stringnew=%%stringnew:%Ö%=Oe%% 
22.
  call set stringnew=%%stringnew:%Ü%=Ue%% 
23.
  call set stringnew=%%stringnew:%ä%=ae%% 
24.
  call set stringnew=%%stringnew:%ö%=oe%% 
25.
  call set stringnew=%%stringnew:%ü%=ue%% 
26.
  call set stringnew=%%stringnew:%ß%=ss%% 
27.
 
28.
  echo stringorg=!stringorg! 
29.
  echo stringnew=!stringnew! 
30.
  if !stringorg!==!stringnew! echo "Stimmt!" 
31.
  pause 
32.
 
33.
 
34.
  if not !stringorg!==!stringnew! ( 
35.
    rename "%%~fi" "!stringnew!" 
36.
37.
38.
 
Ich hab das bissel geändert(zusammengeklaut) und in der Zeile:
01.
if !stringorg!==!stringnew! echo "Stimmt!"
liegt der Hase begraben, denn was sagt die Ausgabe?

01.
stringorg=_ß.txt 
02.
stringnew=_ss.txt 
03.
"Stimmt"
Obwohl jeder sieht, dass _ß.txt und _ss.txt verschieden sind ist Windows der Meinung sie sind identisch.

Eine wirkliche Idee hab ich nicht mehr.

Außer hartgecodet:

01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
 
04.
setlocal&for /f "tokens=2 delims=:" %%a in ('chcp') do (set /a oemcp=%%~na&chcp 1252>nul) 
05.
for /f "tokens=1-7" %%a in ('echo Ä Ö Ü ä ö ü ß^&chcp %oemcp%^>nul') do ( 
06.
set au=%%a&set ou=%%b&set uu=%%c&set al=%%d&set ol=%%e&set ul=%%f&set sz=%%g) 
07.
(endlocal&set Ä=%au%&set Ö=%ou%&set Ü=%uu%&set ä=%al%&set ö=%ol%&set ü=%ul%&set ß=%sz%) 
08.
 
09.
 
10.
call :RenameUmlaute ad 
11.
call :RenameUmlaute a-d 
12.
pause 
13.
exit /b 
14.
 
15.
:RenameUmlaute 
16.
for /f "delims=" %%i in ('dir /s /b /%1 test') do ( 
17.
  set stringorg=%%~nxi 
18.
  set stringnew=!stringorg! 
19.
 
20.
  call set stringnew=%%stringnew:%Ä%=Ae%% 
21.
  call set stringnew=%%stringnew:%Ö%=Oe%% 
22.
  call set stringnew=%%stringnew:%Ü%=Ue%% 
23.
  call set stringnew=%%stringnew:%ä%=ae%% 
24.
  call set stringnew=%%stringnew:%ö%=oe%% 
25.
  call set stringnew=%%stringnew:%ü%=ue%% 
26.
  call set stringnew=%%stringnew:%ß%=ss%% 
27.
 
28.
  echo stringorg=!stringorg! 
29.
  echo stringnew=!stringnew! 
30.
 
31.
  pause 
32.
 
33.
 
34.
  if not !stringorg!==!stringnew! ( 
35.
    rename "%%~fi" "!stringnew!" 
36.
37.
  echo !stringorg!|find "%ß%" && rename "%%~fi" "!stringnew!" 
38.
)
Hier:
01.
echo !stringorg!|find "%ß%" && rename "%%~fi" "!stringnew!" 
wird lediglich geschaut, ob in dem Originalstring ein ß vorhanden ist und wenn ja (&&) wird diese Datei umbenannt.

Gruß
Bitte warten ..
Mitglied: Xaero1982
11.06.2014 um 23:38 Uhr
Das zeigt es noch mal ganz klar:

01.
echo on 
02.
chcp 1252 
03.
 
04.
if ä==ae echo "Stimmt - ä=ae" 
05.
if ü==ue echo "Stimmt - ü=ue" 
06.
if ö==oe echo "Stimmt - ö=oe" 
07.
if ß==ss echo "Stimmt - ß=ss" 
08.
if Ä==Ae echo "Stimmt - Ä=Ae" 
09.
if Ü==Ue echo "Stimmt - Ü=Ue" 
10.
if Ö==Oe echo "Stimmt - Ö=Oe" 
11.
 
12.
pause
Ergebnis:

01.
 
02.
echo on  
03.
 
04.
chcp 1252  
05.
Aktive Codepage: 1252. 
06.
 
07.
if ä == ae echo "Stimmt - ä=ae"  
08.
 
09.
if ü == ue echo "Stimmt - ü=ue"  
10.
 
11.
if ö == oe echo "Stimmt - ö=oe"  
12.
 
13.
if ß == ss echo "Stimmt - ß=ss"  
14.
"Stimmt - ß=ss" 
15.
 
16.
if Ä == Ae echo "Stimmt - Ä=Ae"  
17.
 
18.
if Ü == Ue echo "Stimmt - Ü=Ue"  
19.
 
20.
if Ö == Oe echo "Stimmt - Ö=Oe"  
21.
 
22.
pause 
23.
Drücken Sie eine beliebige Taste . . . 
Bitte warten ..
Mitglied: Xaero1982
13.06.2014, aktualisiert um 18:57 Uhr
Ist das jetzt eigentlich erledigt?
Na online warste ja immerhin... ist ja dann wohl erledigt ...

Dann bitte noch auf gelöst setzen
Bitte warten ..
Mitglied: joe65
15.06.2014 um 17:55 Uhr
Hallo Xaero1982,

gelöst ist die Sache nicht, es sei denn man könnte über ein Batch-Script prinzipiell "ß" und "ss" nicht unterscheiden.
Eine Unterscheidung ist aber möglich, denn wenn man im "stringorg" neben dem "ß" noch einen weiteren Umlaut hat, dann wird das "ß" korrekt in "ss" umgewandelt. Nur wenn der "stringorg" nur eine "ß" enthält funktioniert das nicht! Es muss also einen Grund geben, warum das bei "ß" + weiteren Umlaut geht und bei nur einem "ß" nicht.

Grüße
joe65
Bitte warten ..
Mitglied: Xaero1982
LÖSUNG 15.06.2014, aktualisiert 17.06.2014
Du hast recht ... klingt merkwürdig, aber klappt in der Tat. Mal sehen...

Gruß
Edit: Ist schon spät, aber das ist total logisch, weil:

ß=ss
ßö!=ssoe
deswegen nennt er es um.

So lange die Batch "meint", dass ß=ss ist wirds nicht gehen. Wie du oben auch in meinem Beispiel siehst sind ist ö nicht gleich oe usw. ß ist aber gleich ss

edit2: offenbar bekanntes Problem..http://www.technologische-hilfe.de/039-ss-039-039-039-sind-die-gleich-s ...
Bitte warten ..
Mitglied: joe65
17.06.2014 um 19:22 Uhr
Hallo Xaero1982,

da anscheinend ß und ss nicht unterschieden werden können werde ich die Frage schließen.
Danke für deinen Beitrag.

Grüße
joe65
Bitte warten ..
Ähnliche Inhalte
HTML
Problem Joomla3.3, php5.6 und Umlaute
Frage von charly74HTML4 Kommentare

Hallo, mir dachte das Problem der Kollationen schaffe ich irgendwie - aber offenbar schaffen diese mich Vielleicht kann mir ...

Google Android

Android Programmierung Problem mit Codierung von Umlauten

gelöst Frage von 115122Google Android7 Kommentare

Hallo, folgendes Problem: Es gibt eine Textdatei, in welcher z.B. folgender String steht: "monatliche Prüfungen". Die App bezieht bestimmte ...

Batch & Shell

Altebekanntes Batch umlaute Problem (txt editor)

Frage von RitriviaBatch & Shell2 Kommentare

Hallo ich will eine Batch Datei schreiben in der er prüfen soll welcher Ordner vorhanden ist und dann in ...

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

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 13 StundenHumor (lol)3 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 TagSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 1 TagMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server45 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware16 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...