alme123
Goto Top

Prüfen, ob Datei textbasiert ist

Guten Morgen,

ich habe folgendes Problem:

ich habe ein Script, das Dateien konvertiert, aber bei nicht textbasierten Dateien sich aufhängt.
Kann man per Batch (oder VBS script) herausfinden, ob eine Datei textbasiert ist?

Vielen Dank im Vorraus,

Alme123

Content-ID: 202433

Url: https://administrator.de/contentid/202433

Printed on: October 5, 2024 at 02:10 o'clock

bastla
bastla Feb 27, 2013 at 07:37:46 (UTC)
Goto Top
Hallo Alme123!

Wie sieht denn Deine Definition von "textbasiert" aus?

Grundsätzlich sollte sich per VBScript die Datei als "Text" einlesen und dann zeichenweise interpretieren lassen (zB Prüfung, ob in den ersten 100 Zeichen andere Steuerzeichen als TAB oder Zeilenumbruch = Codes 9, 10, 13 vorkommen) ...

Grüße
bsatla
Alme123
Alme123 Feb 27, 2013 updated at 15:31:36 (UTC)
Goto Top
Hi bastla,

mit textbasiert meine ich TextDateien (Keine .doc sondern normale .txt oder .bat)
keine .exe , .com oder andere Dateien mit diesen "BlockZeichen" drin

Dein Ansatz ist gut, aber realisieren kann ich ihn nicht.

Alme123
bastla
bastla Feb 27, 2013 updated at 19:27:16 (UTC)
Goto Top
Hallo Alme123!

Das sähe etwa so aus:
T = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll  
L = Len(T)
If L > 100 Then L = 100 'nur max erste 100 Zeichen prüfen  
For i = 1 To L
    Code = Asc(Mid(T, i, 1))
    If Code < 32 Then
        Select Case Code
        Case 9, 10, 13
             'Zeichen sind erlaubt  
        Case Else
             'nicht erlaubtes Sonderzeichen  
             NoText = True
             Exit For
        End Select
    End If
Next
If NoText Then WScript.Quit 1
Dieses Script (gespeichert als "D:\Check4Text.vbs") könntest Du zB aus einem Batch mit
cscript //nologo "D:\Check4Text.vbs" "D:\Zu prüfende Datei.Typ" && echo könnte Textdatei sein || echo keine Textdatei
aufrufen ...

Grüße
bastla
Alme123
Alme123 Feb 28, 2013 at 04:19:30 (UTC)
Goto Top
Guten Morgen bastla,

dein Script funktioniert perfekt!

Vielen Dank!

Alme123

[Theard closed]