Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

DOS Text-Dateien unter Windows anzeigen

Frage Entwicklung Batch & Shell

Mitglied: matsahm

matsahm (Level 1) - Jetzt verbinden

22.04.2011 um 12:29 Uhr, 4786 Aufrufe, 9 Kommentare

Hallo Admins,

Ich versuche verzweifelt eine in der Kommandozeile erstellte Textdatei unter Windows 7 korrekt anzuzeigen. Ich komme aber nicht weiter.

Eingabe an der Kommandozeile:
ipconfig /all | find "ü" > c:\test.txt
start c:\test.txt

Daraufhin startet Notepad mit folgender Ausgabe:
NetBIOS ber TCP/IP . . . . . . . : Aktiviert
NetBIOS ber TCP/IP . . . . . . . : Aktiviert
(Das ü fehlt)

Ich weiß, das ich mit Wordpad die Datei korrekt öffnen kann, wenn ich als Format MS-DOS auswähle. Das kann ich in meinem Fall aber nicht nutzen, da ich das Programm aus der Batch heraus starten möchte. Wenn ich Wordpad die Textdatei als Parameter mitgebe, wird sie ebenso wie in Notepad falsch angezeigt.

Mögliche Lösungen, welche ich aber alle nicht realisiert bekomme:
1. Wordpad mit Parameter starten, dass die Datei im MS-DOS Format geladen wird. Dazu konnte ich nichts finden.
2. Die Textdatei an der Kommandozeile auf Umlaute untersuchen und durch ae oe und ue ersetzen.
3. Die Textdatei (ASCII) in das ANSI-Format konvertieren. Hier habe ich nur den umgekehrten Weg gefunden (mit TYPE).

Wichtig ist, dass es mit Windows Bordmitteln (XP, Vista, 7) funktioniert. Bevorzugt direkt in der Batch. Notfalls mit eingebetteter vbs-Datei. Hat jemand Ideen dazu?

Gruß
Mathias
Mitglied: 99045
22.04.2011 um 12:43 Uhr
gelöscht, war ein Versehen.
Bitte warten ..
Mitglied: TsukiSan
22.04.2011 um 16:17 Uhr
eventuell liegt's an der Keyboardeinstellung CHCP

Gruss
Tsuki
Bitte warten ..
Mitglied: matsahm
22.04.2011 um 16:22 Uhr
Damit habe ich schon gespielt, aber die Ausgabe hat sich nicht verändert

Gruß
Mathias
Bitte warten ..
Mitglied: TsukiSan
22.04.2011 um 16:40 Uhr
Naja, mit VBSimplementierung könnte es in etwa so aussehen:
01.
@Echo OFF 
02.
>"C:\MeinIPCONFIG.vbs" Echo Set objShell = CreateObject("WScript.Shell") 
03.
>>"C:\MeinIPCONFIG.vbs" Echo Set objWshScriptExec = objShell.Exec("ipconfig /all") 
04.
>>"C:\MeinIPCONFIG.vbs" Echo Set objStdOut = objWshScriptExec.StdOut 
05.
>>"C:\MeinIPCONFIG.vbs" Echo strOutput = objStdOut.ReadAll 
06.
>>"C:\MeinIPCONFIG.vbs" Echo Set FSO = CreateObject("Scripting.FileSystemObject") 
07.
>>"C:\MeinIPCONFIG.vbs" Echo Set MeineDatei = FSO.CreateTextFile("C:\Test.txt",True).Write(strOutput) 
08.
>>"C:\MeinIPCONFIG.vbs" Echo MeineDatei.Close 
09.
>>"C:\MeinIPCONFIG.vbs" Echo Set FSO = Nothing 
10.
 
11.
Call "C:\MeinIPCONFIG.vbs" 
12.
 
13.
REM hier käme deine FOR-Schleife mit FINDSTR "Ü" 
14.
REM aber da wären wir ja wieder beim Problem, oder? 
15.
 
16.
del C:\MeinIPCONFIG.vbs /q
aber ob somit das Ü-Problem gelöst werden kann???

Gruss
Tsuki
Bitte warten ..
Mitglied: rubberman
22.04.2011 um 23:46 Uhr
Hallo matsahm.

Zitat von matsahm:
Damit habe ich schon gespielt, aber die Ausgabe hat sich nicht verändert

Dann hast du noch nicht genug gespielt. Natürlich liegt des Rätsels Lösung in der Zeichenkodierung. Folgendes funktioniert (wenn auch langsam).
01.
@echo off &setlocal 
02.
>C:\test.txt type nul 
03.
for /f "delims=" %%a in ('ipconfig /all') do ( 
04.
  set "line=%%a" 
05.
  call :proc 
06.
07.
goto :eof 
08.
 
09.
:proc 
10.
setlocal enabledelayedexpansion 
11.
chcp 1252>nul 
12.
>>C:\test.txt (echo(!line!|find "ü") 
13.
endlocal 
14.
goto :eof 
15.
 
Der Code ist im ANSI Format gespeichert (was die meisten Texteditoren by default tun) und erzeugt bei mir folgenden Dateiinhalt:
   NetBIOS über TCP/IP . . . . . . . : Deaktiviert 
   NetBIOS über TCP/IP . . . . . . . : Deaktiviert 
Grüße
rubberman
Bitte warten ..
Mitglied: matsahm
23.04.2011 um 08:43 Uhr
Hallo Rubberman,

Vielen dank, das Funktioniert. Ich brauche aber die ganze Ausgabe von ipconfig. Das | find "ü" war hier nur für die schnelle Demonstration. Wenn ich das aus deinem Skript entferne, werden aber alle Leerzeilen entfernt. Das macht die Text-Datei wieder sehr unübersichtlich. Gibt es dafür auch eine Lösung? Ich habe es mitlerweile auch geschafft alle Umlaute zu ersetzen. Dabei tritt aber genau das gleiche Problem auf. Leere Zeilen werden verschluckt.

Gruß
Mathias
Bitte warten ..
Mitglied: rubberman
23.04.2011 um 12:41 Uhr
Hallo matsahm,

dazu kannst du den alten Trick mit findstr /n "^" nutzen. Hierbei werden alle Zeilen (incl. Leerzeilen) durchnummeriert. Die Zeilennummer wird anschließend über den Doppelpunkt als Delimiter abgeschnitten ...
01.
@echo off &setlocal 
02.
>C:\test.txt type nul 
03.
for /f "tokens=1* delims=:" %%a in ('ipconfig /all^|findstr /n "^"') do ( 
04.
  set "line=%%b" 
05.
  call :proc 
06.
07.
goto :eof 
08.
 
09.
:proc 
10.
setlocal enabledelayedexpansion 
11.
chcp 1252>nul 
12.
>>C:\test.txt echo(!line! 
13.
endlocal 
14.
goto :eof 
15.
 
Grüße
rubberman
Bitte warten ..
Mitglied: matsahm
23.04.2011 um 14:09 Uhr
Hallo rubberman,

Vielen Dank, das wars. Genau das habe ich gesucht. Eine Frage zum Verständnis der Batch: Was bedeutet die Klammer bei echo(!line!

Gruß
Mathias
Bitte warten ..
Mitglied: rubberman
23.04.2011 um 23:04 Uhr
Hallo matsahm,

die Klammer sieht etwas befremdlich aus, ist aber letztlich eines der möglichen Zeichen die erforderlich sind, um auch Leerzeilen auszugeben. Verbreiteter ist natürlich das
echo.
Warum ich statt dessen meistens
echo(
verwende, kannst du hier nachlesen.

Das EnableDelayedExpansion nutze ich, um eventuelle Sonderzeichen ohne Maskierung ausgeben zu können (auch wenn das in diesem Fall vermutlich nicht nötig ist).

Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
JavaScript
gelöst Datumabhängiger Text in HTML anzeigen (4)

Frage von adm2015 zum Thema JavaScript ...

Batch & Shell
gelöst Text Datei bestimmte Bereiche lesen und in neue Text schreiben (3)

Frage von TurboD zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch sucht bestimmten "text" in einer .txt datei und soll dann die Zeile anzeigen (6)

Frage von MedicalAd zum Thema Batch & Shell ...

Webbrowser
gelöst Firefox kann PDF-Dateien nicht anzeigen (7)

Frage von Hertie zum Thema Webbrowser ...

Neue Wissensbeiträge
Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(1)

Information von DerWoWusste zum Thema Microsoft ...

Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(6)

Information von LordGurke zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...

TK-Netze & Geräte
TK-Anlage VoIP - DECT Erweiterung (15)

Frage von Lynkon zum Thema TK-Netze & Geräte ...