Von VBS erstellte Batchdatei läuft nicht
Hallo, wieder stehe ich einmal vor einem Rätsel und bitte um Eure Hilfe,
Mit folgendem Script erstelle ich eine Batchdatei:
Die Lösung mit AB (Hochkomma) mußte ich wählen, da die Dateinamen viele Leerzeichen aufweisen und so Quelle und Ziel in Hochkommas gesetzt werden mußten, damit der RENAME-Befehl zufriedenstellend arbeitet.
Es wird also eine Batchdatei erstellt, die 1800 Byte gro0 ist. Starte ich diese von der Aufgabeaufforderung aus, so kommt folgende Fehlermeldung:
Gebe ich hingegen "type Kat.bat" ein erscheint der Umbenenn-Befehl so wie er sein soll:
Nun habe ich eine neue Batchdatei 'umgepipt':
Diese lä0t sich nun auch ausführen und ist auch nur noch halb so groß (901 kB).
Der fc-Befehl (vergleiche kat.bat und ka.bat) zeigt bei der größeren Datei hinter jedem Zeichen einen Zeilenumbruch (daher wohl die doppelte Größe). Ein Hexeditor meiner Wahl beginnt die Datei mit FF und FE und läßt hinter jedem Zeichen ein NUll zeichen (hex 00) folgen. s. Screenshot
Wie ist das hineingekommen ?
Auf Antwort freut sich
GH Micha
Mit folgendem Script erstelle ich eine Batchdatei:
EingabeDatei = "WBZInfo.csv"
Ausgabedatei = "Kat.bat" ' Die Zieldatei wird im aktuellen Verzeichnis abgelegt
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(EingabeDatei) Then
Set objEingabe = fso.OpenTextFile(EingabeDatei, ForReading)
Else
MsgBox "Fehler: Eingabedatei ist nicht vorhanden."
Wsh.Quit
End If
Set objAusgabe = fso.CreateTextFile(Ausgabedatei, 2, True)
objEingabe.Skipline ' Die erste Zeile auslassen
Do While not objEingabe.AtEndOfLine
Inhalt=objEingabe.ReadLine ' ReadAll
arrays=Split(Inhalt, ";")
' --------------------------------
' Die Felder der Datei WBZInfo.csv
' 4/11 title
' 5/12 credit
' 7/16 category - album
' 10 ID
' 14 category
' 17 dailyDateDDMMYYYY
AB = Chr(34) ' Hoch-Komma oder Gänsefüserl
alterName=arrays(10) & " " & arrays(4) & ".jpg"
neuerName=UCase(arrays(16)) & "=" & arrays(10) & " " & arrays(4) & ".jpg"
objAusgabe.WriteLine "RENAME " & AB & alterName & AB & " " & AB & neuerName & AB
Loop
objEingabe.Close
objAusgabe.Close
Set objAusgabe = Nothing
Set objEingabe = Nothing
Set fso = Nothing
MsgBox Ausgabedatei & " erstellt"
Die Lösung mit AB (Hochkomma) mußte ich wählen, da die Dateinamen viele Leerzeichen aufweisen und so Quelle und Ziel in Hochkommas gesetzt werden mußten, damit der RENAME-Befehl zufriedenstellend arbeitet.
Es wird also eine Batchdatei erstellt, die 1800 Byte gro0 ist. Starte ich diese von der Aufgabeaufforderung aus, so kommt folgende Fehlermeldung:
Der Befehl "■R" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
RENAME "DateinameAlt.jpg" "DateinameNeu.jpg".
Nun habe ich eine neue Batchdatei 'umgepipt':
type kat.bat > ka.bat.
Der fc-Befehl (vergleiche kat.bat und ka.bat) zeigt bei der größeren Datei hinter jedem Zeichen einen Zeilenumbruch (daher wohl die doppelte Größe). Ein Hexeditor meiner Wahl beginnt die Datei mit FF und FE und läßt hinter jedem Zeichen ein NUll zeichen (hex 00) folgen. s. Screenshot
Wie ist das hineingekommen ?
Auf Antwort freut sich
GH Micha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 192945
Url: https://administrator.de/forum/von-vbs-erstellte-batchdatei-laeuft-nicht-192945.html
Ausgedruckt am: 06.01.2025 um 23:01 Uhr
4 Kommentare
Neuester Kommentar
Moin,
ich kann dir allgemein nicht helfen, dennoch bin ich verwirrt. 901 KB sind nicht die hälfte von 1800 B!
KB = KiloByte ((Byte / 1000) genau genommen Byte / 1024) und Byte sind Byte.
Daher ist die "ka.bat" größer als die "kat.bat"
kat.bat = 1800Byte = 1,76KiloByte
ka.bat = 901KiloByte = 922624 Byte = 0,87MegaByte
Eventuell hast du dich verschrieben, dennoch leicht verwirrend, wenn es richtig geschrieben ist, sp ist die ka.bat halt größer als die kat.bat.
Gruß Zero
ich kann dir allgemein nicht helfen, dennoch bin ich verwirrt. 901 KB sind nicht die hälfte von 1800 B!
KB = KiloByte ((Byte / 1000) genau genommen Byte / 1024) und Byte sind Byte.
Daher ist die "ka.bat" größer als die "kat.bat"
kat.bat = 1800Byte = 1,76KiloByte
ka.bat = 901KiloByte = 922624 Byte = 0,87MegaByte
Eventuell hast du dich verschrieben, dennoch leicht verwirrend, wenn es richtig geschrieben ist, sp ist die ka.bat halt größer als die kat.bat.
Gruß Zero