Binärdateien unter WSH-Script ein/auslesen

Hallo Gemeinde,
ich benötige eigentlich ein recht einfaches Tool um Binär-Dateien in Ascii Dateien umzuwandeln und zurück.
Ich arbeite oft über VPN auf verschiedenen Systemem und dort ist der Datei-Transfer oft generell gesperrt. Die Zwischenablage ist aber frei für Text. Jetzt muss ich schon mal Dateien auf diese Systeme kopieren oder runterladen, was dann aber eben nicht geht.
Daraus ergibt sich, dass diverse Freeware etc ausgeschlossen ist, weil ich auf diesen Systemen ja schon gar nichts fremdes installieren darf/kann.
Mein Ansatz war nun einen WSH Script zu erstellen, der mir eine Binärdatei in Bytes einliest und das Byte in der Form 00 bis FF als Text in eine Zieldatei schreibt.
Grundlage dazu ist die Funktion Hex()
Ein umgekehrter Script soll die Textdatei wieder zurückkonvertieren.

Mein Problem ist, dass OPEN file BINARY INPUT / OUTPUT nicht mehr unterstützt wird, Windows-Script demnach mit Basic wohl nur noch wenig zu tun hat. Hat lange gedauert, bis ich die Fehlermeldung begriffen hatte :frowning:
Die anderen Methoden wie OpenTextStream funktionieren aber nur auf Text, nicht auf Binärdaten soweit ich das verstehe.
Wie kann ich trotzdem eine Binärdatei byteweise auslesen und umwandeln, bzw später wieder eine Binärdatei mit dem WSh erstellen
Mit freundlichem Dank
Michael

C Programm sinnvoller
Ich würde da ein C Programm vorziehen, das ist für binäre Hackerei ideal. Mit sprintf kannst du den Hexcode erstellen und mit atoiwieder den binärcode.
Die Binärdatei selbst würde ich in den speicherholen und als int* casten. Dann kannst du immer 4bytes zusammen umwandeln.

kann keine Fremdsoftware installieren
Hallo Cybertom,
zunächst Danke dass Du überhaupt geantwortet hast.
Du scheinst aber überlesen zu haben, dass ich keine Software installieren darf und auch nicht kann! Lediglich Windows-Script ist möglich, weil ich nur das als Text überhaupt per VPN-Remote Zugriff auf das System bekomme.
Wie die generelle Umwandlung funzt ist mir schon klar.
Meine Frage lautete wie ich Binärdateien einlesen und wieder schreiben kann. Es gibt dort nur den Textstream. Der kann aber doch keine Binärdaten ab.
Gruß
Michael

Ich [darf] keine [fremd] Software installieren

Ich hatte jetzt etwas selbst programmiertes nicht als Fremdsoftware betrachtet.

Windows-Script ist möglich

Damit fällt mir auch keine Lösung ein. Höchstens mit Phyton, Ruby, … Das setzt aber voraus, das ein entsprechender Interpreter installiert ist :frowning:

kannst du von dem Windowsserver aus ins Internet? Wenn ja kannst du auf einen FTP Server eine Datei hochladen und sie auf der windowskonsole mit dem ftpbefehl runter laden.

Es geht nur mit einem Script unter XP
Hallo Cybertom,
Ich muss mal etwas genauer erklären, warum das mit Software installieren nicht geht.
Ich kann über diese VPN Remote Verbindung eine Art Fernbedienung auf Industrieanlagen durchführen. Die Unternehmen erlauben mit viel Firewall, Dongel und Sicherheit drum herum einen Zugriff von Außen über das Internet auf Ihre Produktionsanlagen. Ich könnte theoretisch von einer Malediven-Insel mit Internet von dort die Anlagen programmieren, ähnlich PC-Anywhere. Mein Chef hat mich aber so lieb, dass er mich doch lieber im Büro sieht.
Zu Wartungszwecken muss ich gelegentlich mal eine Datei austauschen.
Alternative ist natürlich hinfahren, aber für 5 Minuten Einsatz eine Tagesreise antreten? Also der Versuch über das Internet.
Der Dateitransfer ist aber in jeglicher Richtung durch die ganzen Firewall gesperrt. Lediglich reiner Text-Transfer ist erlaubt per drag and drop. Deshalb kann das Programm für die Umwandlung ebenfalls nur eine Textdatei sein, die mit den spartanischen Bordmitteln der Systeme ausführbar wird. Also bleibt nur der Windows Script Host. Der ist standardmäßig auf den Maschinen aktiviert.
Das führt nun geradewegs zu meinem Problem, weil ich nicht weiß wie man Binärdaten in einem WSH-Script aus einer Datei ein und ausliest.
Vielleicht hat jemand anderes hier noch eine Idee.
Vielen Dank aber trotzdem für die Mühe bis hier hin.
Gruß Michael

Da es mit WSH (wohl) nicht geht, solltest du prüfen, ob es nicht einen anderen ‚Interpreter‘ oder ‚Compiler‘ auf beiden Systemen gibt - zunächst fällt mir da Java und .Net ein.

MS schrieb in der WSH-Hilfe (© 2001 Microsoft Corporation. Alle Rechte vorbehalten. Build: Thema-Version 5.6.9309.1546):
„Im Allgemeinen werden Skripts entweder in Microsoft JScript oder in VBScript erstellt. Diese beiden Skriptmodule gehören zum Lieferumfang von Microsoft Windows 98, 2000 und den Millennium Editions. Sie können auch andere Skriptmodule, wie Perl, REXX und Python, zusammen mit Windows Script Host verwenden.“
DAS sieht so aus, als dass WSH auch Perl, REXX und Python abarbeiten kann . . . vielleicht können diese Module Dateien Byte-weise lesen.

Was ich mir auch noch vorstellen kann: Du bedienst dich ‚irgendwelcher‘ Objekte (.dll; ActiveX; .exe), die die Umwandlung übernehmen.

Bei allen diesen Vorschlägen kann ich dir aber NICHT helfen . . . leider.
Aber, was ich nocht machen kann: Ich wünsche dir Erfolg! :wink:

1 Like

Danke erst mal für den Tip mit Java.
Hatte ja auch schon über die Expertenanfrage eine Antwort von Dir bekommen.
Das muss ich erst mal prüfen, ob Java in unserem System aktiviert ist.
Allerdings kenne ich Java schon gar nicht und ob dort überhaupt Binärverarbeitungen möglich sind.
Aber das werde ich schon rausgoogeln.
Gruß
Michael