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

Batch schreibt keine Umlaute (äöü)

Frage Entwicklung Batch & Shell

Mitglied: soritose

soritose (Level 1) - Jetzt verbinden

19.02.2014, aktualisiert 08:39 Uhr, 2712 Aufrufe, 11 Kommentare

Hallo,

ich bins mal wieder und ich habe wieder ein Batch-Problem.

Ich schreibe gerade eine Suche die den Namen von Imdb ausliest. Den Link übergebe ich mit der Imdb Nummer und ich bekomme eine Antwort von der Seite. Aus dem HTML Text muss ich eine Zeile auslesen und das funktioniert auch ganz gut. Nur wenn ich dann einige Zeichen ersetze und sie wieder in eine txt-Datei schreibe sind die Umlaute wie z.B. "äöü" weg.

Hier mal meine bat-Datei:

01.
  
02.
@ECHO OFF 
03.
set IMDB=%1 
04.
echo %IMDB% 
05.
pause 
06.
 
07.
D:\test-ortner\curl.exe -d -i http://www.imdb.com/title/%IMDB%/ >D:\test-ortner\imdb.txt 
08.
 
09.
pause 
10.
C:\Windows\System32\findstr.exe /L /C:"og:title" D:\test-ortner\imdb.txt>D:\test-ortner\imdb-suche.txt 
11.
FOR /F "tokens=1,2 delims=<" %%A IN ('c:\windows\System32\findstr.exe /V /C:"soritose" D:\test-ortner\imdb-suche.txt') DO ( 
12.
set IMDB-SUCHE=%%B 
13.
14.
echo %IMDB-SUCHE%D:\movie4k-kinox\test-ortner\imdb-suche-ende.txt 
15.
 
16.
---------------------------------------------------------------------------------------- 
17.
rem bis hier get alles da gibt er alles noch mit äöü in eine txt datei 
18.
---------------------------------------------------------------------------------------- 
19.
 
20.
FOR /F "tokens=1,2,3 delims==" %%A IN ('c:\windows\System32\findstr.exe /V /C:"soritose" D:\test-ortner\imdb-suche-ende.txt') DO ( 
21.
set IMDB-SUCHE1=%%C 
22.
23.
echo %IMDB-SUCHE1%>D:\test-ortner\imdb-suche-ende1.txt 
24.
FOR /F "tokens=*" %%a IN ('c:\windows\System32\findstr.exe /V /C:"soritose" D:\test-ortner\imdb-suche-ende1.txt') DO set IMDB-SUCHE2=%%a 
25.
 
26.
set IMDB-SUCHE3=%IMDB-SUCHE2: =+% 
27.
set IMDB-SUCHE4=%IMDB-SUCHE3:"=══% 
28.
set IMDB-SUCHE5=%IMDB-SUCHE4:+(=══% 
29.
echo %IMDB-SUCHE5%>D:\test-ortner\imdb-suche-ende2.txt 
30.
 
31.
FOR /F "tokens=1-4 delims=══" %%A IN ('c:\windows\System32\findstr.exe /V /C:"soritose" D:\movie4k-kinox\test-ortner\imdb-suche-ende2.txt') DO ( 
32.
set name1=%%A 
33.
set name2=%%B 
34.
set name3=%%C 
35.
set name4=%%D 
36.
37.
 
38.
echo %name1% 
39.
pause

Ich würde mich freuen, wen mir da wieder jemand helfen könnte.
Vielen Dank
Mitglied: Sheogorath
19.02.2014, aktualisiert um 01:06 Uhr
Moin,

wenn man nach "umlaute in Batch" sucht, findet man da relativ schnell was... Hier die Lösung:

01.
chcp 1252
steht für Change Codepage einfach oben einfügen, fertig.

Infos:
http://www.pctipp.ch/tipps-tricks/kummerkasten/windows-7/artikel/window ...

Gruß
Chris
Bitte warten ..
Mitglied: DerWoWusste
19.02.2014 um 08:07 Uhr
Moin.

Wenn chcp nicht helfen sollte (war es nicht so, dass damit nur die Ausgabe in der Shell beeinflusst werden konnte?), dann nimm dies http://www.richpasco.org/utilities/cp850win.html
Bitte warten ..
Mitglied: Sheogorath
19.02.2014 um 08:29 Uhr
Moin,

Zitat von DerWoWusste:

Moin.

Wenn chcp nicht helfen sollte (war es nicht so, dass damit nur die Ausgabe in der Shell beeinflusst werden konnte?)

also meines Wissens (ich nutze einfach keine Umlaute) dreht chcp nur die Verarbeitung nicht die Ausgabe.

Gruß
Chris
Bitte warten ..
Mitglied: soritose
19.02.2014, aktualisiert um 23:40 Uhr
hallo

und danke für eure antworten aber leider bringen sie mir alle nicht

bis da hin schreibt er die suche auch alle Sonderzeichen mit rein


echo %IMDB-SUCHE1%>D:\test-ortner\imdb-suche-ende1.txt

das ist in der txt Datei drin imdb-suche-ende1.txt
"CSI - Den Tätern auf der Spur (TV Series 2000– )" /

ab jest kommt das Problem

FOR /F "tokens=*" %%a IN ('c:\windows\System32\findstr.exe /V /C:"soritose" D:\test-ortner\imdb-suche-ende1.txt') DO set IMDB-SUCHE2=%%a

das ist die Ausgabe

D:\test-ortner>set IMDB-SUCHE2="CSI - Den T├ñtern auf der Spur (TV Series 2000ÔÇô )" /

set IMDB-SUCHE3=%IMDB-SUCHE2: =+%
echo %IMDB-SUCHE3%

D:\test-ortner>set IMDB-SUCHE3="CSI+-+Den+T├ñtern+auf+der+Spur+(TV+Series+2000ÔÇô+)"+/

set IMDB-SUCHE4=%IMDB-SUCHE3:"=══%

D:\test-ortner>set IMDB-SUCHE4=══CSI+-+Den+T├ñtern+auf+der+Spur+(TV+Series+2000ÔÇô+)══+/

set IMDB-SUCHE5=%IMDB-SUCHE4:+(=══%

D:\test-ortner>set IMDB-SUCHE5=══CSI+-+Den+T├ñtern+auf+der+Spur══TV+Series+2000ÔÇô+)══+/

echo %IMDB-SUCHE5%>D:\movie4k-kinox\test-ortner\imdb-suche-ende2.txt

D:\test-ortner>echo ══CSI+-+Den+T├ñtern+auf+der+Spur══TV+Series+2000ÔÇô+)══+/ 1>D:\movie4k-kinox\test-ortner\imdb-suche-ende2.txt

und das schreibt er dan in die txt rein

ÍÍCSI+-+Den+Tätern+auf+der+SpurÍÍTV+Series+2000–+)ÍÍ+/
Bitte warten ..
Mitglied: soritose
19.02.2014 um 11:49 Uhr
also meines Wissens (ich nutze einfach keine Umlaute) dreht chcp nur die Verarbeitung nicht die Ausgabe.


das problem ist das ich nicht bestimrn kann ob er äöü drin hat
Bitte warten ..
Mitglied: Sheogorath
19.02.2014 um 16:44 Uhr
Moin,

Zitat von soritose:

> also meines Wissens (ich nutze einfach keine Umlaute) dreht chcp nur die Verarbeitung nicht die Ausgabe.


das problem ist das ich nicht bestimrn kann ob er äöü drin hat

ja und? Wenn keines drin ist, ändert sich ja nichts. Probiere es mal aus ;)

Gruß
Chris
Bitte warten ..
Mitglied: soritose
19.02.2014 um 18:40 Uhr
also chcp geht nicht egal was ich da nutze

und das mit den äöü wie soll ich das nicht nehmen wen ich nicht weis ob im name ein äöü vor kommt
Bitte warten ..
Mitglied: Endoro
19.02.2014 um 19:39 Uhr
Hey,
du könntest deinen Code mal in Tags setzen; so ist der leider nicht zu lesen bzw. nachzustellen.
Gruss.
Bitte warten ..
Mitglied: soritose
19.02.2014 um 23:41 Uhr
01.
  
02.
echo %IMDB-SUCHE1%>D:\test-ortner\imdb-suche-ende1.txt

das ist in der txt Datei drin imdb-suche-ende1.txt
"CSI - Den Tätern auf der Spur (TV Series 2000– )" /

ab jest kommt das Problem
01.
  
02.
FOR /F "tokens=*" %%a IN ('c:\windows\System32\findstr.exe /V /C:"soritose" D:\test-ortner\imdb-suche-ende1.txt') DO set IMDB-SUCHE2=%%a

das ist die Ausgabe

D:\test-ortner>set IMDB-SUCHE2="CSI - Den T├ñtern auf der Spur (TV Series 2000ÔÇô )" /
01.
  
02.
set IMDB-SUCHE3=%IMDB-SUCHE2: =+% 
03.
echo %IMDB-SUCHE3%

D:\test-ortner>set IMDB-SUCHE3="CSI+-+Den+T├ñtern+auf+der+Spur+(TV+Series+2000ÔÇô+)"+/
01.
  
02.
set IMDB-SUCHE4=%IMDB-SUCHE3:"=══%

D:\test-ortner>set IMDB-SUCHE4=══CSI+-+Den+T├ñtern+auf+der+Spur+(TV+Series+2000ÔÇô+)══+/
01.
  
02.
set IMDB-SUCHE5=%IMDB-SUCHE4:+(=══%

D:\test-ortner>set IMDB-SUCHE5=══CSI+-+Den+T├ñtern+auf+der+Spur══TV+Series+2000ÔÇô+)══+/
01.
  
02.
echo %IMDB-SUCHE5%>D:\movie4k-kinox\test-ortner\imdb-suche-ende2.txt

D:\test-ortner>echo ══CSI+-+Den+T├ñtern+auf+der+Spur══TV+Series+2000ÔÇô+)══+/ 1>D:\movie4k-kinox\test-ortner\imdb-suche-ende2.txt

und das schreibt er dan in die txt rein

ÍÍCSI+-+Den+Tätern+auf+der+SpurÍÍTV+Series+2000–+)ÍÍ+/

so besser Endoro
Bitte warten ..
Mitglied: pieh-ejdsch
20.02.2014 um 13:27 Uhr
Moin,

Was möchtest Du denn entfernen?

01.
Set imdb=%1 
02.
pushD D:\test-ortner 
03.
curl.exe -d -i http://www.imdb.com/title/%IMDB%/ >imdb.txt  
04.
for /f tokens^=2delims^=^" %%i in ('find "og:title' content=" "imdb.txt" ') do 3>out.txt (echo %%i>&3) 
05.
popD
Gruß Phil
Bitte warten ..
Mitglied: Endoro
20.02.2014, aktualisiert um 14:15 Uhr
Hey,

die IMDB-Seite sendet alles in utf-8. Aus mir nicht näher bekannten Gründen aber nicht unerwartet kommt cmd /U damit nicht zurecht. Ich würde den Text der Einfachheit halber mit iconv in ANSI CP 1252 umwandeln.
01.
@ECHO OFF &SETLOCAL disableDelayedExpansion 
02.
CHCP 
03.
FOR /f tokens^=2delims^=^" %%a IN ('wget -q -O- "http://www.imdb.com/title/tt3396548"^|FINDSTR "og:title"') DO ECHO(%%a 
04.
FOR /f tokens^=2delims^=^" %%a IN ('wget -q -O- "http://www.imdb.com/title/tt3396548"^|FINDSTR "og:title"^|iconv -f utf-8 -t cp850') DO ECHO(%%a 
05.
FOR /f tokens^=2delims^=^" %%a IN ('wget -q -O- "http://www.imdb.com/title/tt3396548"^|FINDSTR "og:title"^|iconv -f utf-8 -t cp1252') DO ECHO(%%a
Active code page: 850 
&quot;Heiter bis t├Âdlich - Hubert und Staller&quot; Bl├╝tentr├ñume (TV Episode 2014) 
&quot;Heiter bis tödlich - Hubert und Staller&quot; Blütenträume (TV Episode 2014) 
&quot;Heiter bis t÷dlich - Hubert und Staller&quot; Bl³tentrõume (TV Episode 2014)
Gruss.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Echo in Batch schreibt vorab eine 1 (1)

Frage von chappy72 zum Thema Batch & Shell ...

Batch & Shell
Batch - Umlaute usw (4)

Frage von Xaero1982 zum Thema Batch & Shell ...

Linux
gelöst Umlaute zählen - Bash-Script (5)

Frage von plutowitsch zum Thema Linux ...

Exchange Server
gelöst Exchange 2013 - Abwesenheitsnachricht Umlaute werden nicht dargestellt (3)

Frage von staybb zum Thema Exchange Server ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (22)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

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