torstenv 10 Geschrieben 29. Februar 2008 Melden Teilen Geschrieben 29. Februar 2008 Wie kann man ein ASCII Zeichen (also nicht UNICODE) ausgeben? Ich hätte gerne, dass so etwas wie ein echo " ">Leerzeichen.txt eine Textdatei anlegt, in der ganz exakt ein Byte mit dem CHAR32 angelegt wird. Mein erstes Problem war ja schon, dass echo immer ein CRLF dranhängt. Aber selbst wenn ich das lösen würde, gibt echo immer UNICODE Zeichen aus, also eben 2 Bytes, selbst bei einem "echo Z>Z.txt". Also 2 Probleme: ohne Zeilenumbruch und ASCII statt UNICODE Alternativ wäre natürlich auch eine andere Lösung interessant, die in der Lage ist, eine Datei zu erzeugen, die exakt ein Byte lang ist und meinen Wunschwert enthält... Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 29. Februar 2008 Melden Teilen Geschrieben 29. Februar 2008 Moin torstenv, die einzige Möglichkeit, die mir einfällt wäre: >copy /y con z.txtz^Z 1 Datei(en) kopiert.(=16:34:41 D:\temp=)>dir z.txt Verzeichnis von D:\temp29.02.2008 16:34 1 z.txt[/Code] [einzugeben am CMD-Prompt == mit ">" gekennzeichnet] das kleine "z", dass ich in der Datei haben will OHNE CRLF danach wird dadurch sofort geschrieben, dass ich direkt nach dem "z" die Tastenkombination CTRL-Z drücken, die als Ende-der-Datei interpretiert wird. Das geht IMHO nur vom CMD-Prompt aus, nicht in einer Batch. Grüße Biber Zitieren Link zu diesem Kommentar
torstenv 10 Geschrieben 29. Februar 2008 Autor Melden Teilen Geschrieben 29. Februar 2008 Das geht IMHO nur vom CMD-Prompt aus, nicht in einer Batch. Danke für den Versuch, aber gerade um die Möglichkeit das aus der Batch zu machen geht es. Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 29. Februar 2008 Melden Teilen Geschrieben 29. Februar 2008 Tja torstenv, dann wirst Du wohl auf eines der Freewaretools zurückgreifen müssen, die für diesen Zweck konzipiert worden sind (echon.exe, xEcho.exe,...). mit dem XEcho [http://www.arminhanisch.de/software/xecho.html] geht das z.b. so. >xecho z /nolf>z.txt(=18:48:37 D:\temp=)>dir z.txt.. Verzeichnis von D:\temp29.02.2008 18:48 1 z.txt[/Code] Oder Du machst es mit einem temporär erstellten VBSkript aus dem Batch heraus. Aber - die Frage sei mir gestattet -WTF treibst Du da? Grüße Biber Zitieren Link zu diesem Kommentar
torstenv 10 Geschrieben 29. Februar 2008 Autor Melden Teilen Geschrieben 29. Februar 2008 dann wirst Du wohl auf eines der Freewaretools zurückgreifen müssen, die für diesen Zweck konzipiert worden sind (echon.exe, xEcho.exe,...). Mist. Es muss irgendwie mit Bordmitteln und aus der Batch heraus möglich sein. Die CSCRIPT-Variante hatte ich auch schon überlegt, aber das ist natürlich auch nur die letzte Möglichkeit, wenn nichts Anderes mehr geht. Ich hatte halt die Hoffnung, dass es die Möglichkeit geben könnte, ein echo in eine Datei zu machen und die dann wieder mittels type mit Pipe oder einem for oder etwas in der Art zu zerlegen. Eigentlich hatte ich gehofft, dass echo etwas schlauer ist, also das man z.B. das CRLF mittels Schalter unterbinden kann. Ich habe aber auch sowas von GAR KEINE Doku zu echo gefunden. Jetzt weiß ich auch warum. Es gibt nichts zu dokumentieren. echo ist strohdumm und kann schlichtweg gar nix. Kanntest du XEcho schon, oder hast du das wegen meiner Nachfrage rausrecherchiert? Falls letzteres: Wonach hast du gesucht? Ich bin total verzweifelt, weil es zu echo einfach keine brauchbare Doku gab. Aber - die Frage sei mir gestattet -WTF treibst Du da? Nichts wirklich praxisrelevantes. Es geht um Proof-Of-Concept Arbeiten für Dokumentationen für Dummies. Dinge, die die Profis einfach wissen, werden oft von Entscheidern nicht verstanden und infolgedessen angezweifelt. Darum muss man Entscheidern Dinge oftmals zeigen ("Guckst du da!"), in diesem Falle die Möglichkeit, über einfache Scripte fast beliebige Dateiinhalte zu erzeugen. Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 29. Februar 2008 Melden Teilen Geschrieben 29. Februar 2008 Moin torstenv, das XEcho hatte ich hier schon herumliegen, und Gottseidank zeigt dieses Tool beim Aufruf mit XEcho /? auch, wo es herkommt. ich hatte es allerdings auch nur irgendwann mal zum Test heruntergeladen, aber nicht wirklich benutzt. Deshalb auch meine WTF-Frage. Von ähnlichen Tools habe ich nur noch den Namen echoN.(com?.exe?) im Ohr, habe aber weder Ansichtsexemplar noch Quelle. Aber auch nicht gesucht. Back to thread... Alternative mit Bordmitteln... hmmmmja, dann bestenfalls das Erzeugen eines temporären VBS-Oneliners, der das eben macht. @echo off & setlocalSet "tmpvb=%temp%\writeAChar.vbs"echo WScript.StdOut.write^( WScript.Arguments^(0^)^)>%tmpvb%cscript //nologo "%tmpvb%" z>MeineNeue1ZeichenDatei.txtdel %tmpvb"[/Code] Dieser ungetestete Schnipsel würde via temporärem VBS-Oneliner ein einzelnes Zeichen (oder auch mehrere) einlesen und rausschreiben - aber eben ohne CRLF. ich habe wieder das Beispiel mit dem Zeichen "z" genommen. Die Caret-Mimik zum Maskieren hatten wir ja schon im Parallelthread - ist hier nicht zwingend nötig, aber schadet auch nicht. Hier ginge auch "echo WScript.StdOut.write( WScript.Arguments(0)) >%tmpvb%". Ohne maskierung der "runden Klammern". Solltest Du noch einen undokumentierten echo-Schalter finden, der uns so etwas hier erspart, dann teile es bitte allen mit. Grüße Biber Zitieren Link zu diesem Kommentar
torstenv 10 Geschrieben 3. März 2008 Autor Melden Teilen Geschrieben 3. März 2008 Dieser ungetestete Schnipsel würde via temporärem VBS-Oneliner ein einzelnes Zeichen (oder auch mehrere) einlesen und rausschreiben - aber eben ohne CRLF. Am Ende blieb mir nix anderes übrig, als diese VBS-Variante zu nehmen. Die bietet im Übrigen auch direkt den Vorteil, dass sie nicht UNICODE, sondern ASCII schreibt, was ja auch direkt eines meiner Bedürfnisse erfüllt. Also per Umweg Ziel erreicht. Thx, T. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.