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

DOS Text-Dateien unter Windows anzeigen

Frage Entwicklung Batch & Shell

Mitglied: matsahm

matsahm (Level 1) - Jetzt verbinden

22.04.2011 um 12:29 Uhr, 4794 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
Datumabhängiger Text in HTML anzeigen
gelöst Frage von adm2015JavaScript4 Kommentare

Hallo Zusammen, ich bin verzweifelt auf der Suche nach einem JavaScript, welches einen bestimmten Text zu einem bestimmten Datum ...

Windows Tools
Mit DOS - WORD erstellte Texte konvertieren?
gelöst Frage von RudiRatlos01Windows Tools2 Kommentare

Hallo allerseits, ich habe eine aus mehreren Dateien bestehende wissenschaftliche Arbeit, die ich Mitte 1992/Anfang 1993 in einer mir ...

Webentwicklung
Text bei Mouseover in besstimmten Bereichen anzeigen?
gelöst Frage von AlternativendeWebentwicklung4 Kommentare

Hallo zusammen, ich habe folgendes Problem. Ich suche nach einer Möglichkeit einen Musterbescheid einzuscannen und diesem Erklärungen hinzuzufügen. Also ...

PHP
Eine Datei anzeigen !
gelöst Frage von manuuelPHP5 Kommentare

Hallo, ich kenne mich leider nicht so gut aus in PHP, deshalb bräuchte eure Hilfe, ich bedanke mich schon ...

Neue Wissensbeiträge
Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 5 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 5 StundenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1010 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell22 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen17 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Logging von "gesendeten Nachrichten" auf Terminalservern
gelöst Frage von Z3R0C0MM4N0THiN6Windows Server10 Kommentare

Hallo zusammen, kann mir jemand auf kurzem Wege sagen ob 1) die per Task-Manager (oder damals tsadmin) an Benutzer ...