Nach dem Post How can I write a null ASCII character (nul) to a file with a Windows batch script? gibt es tatsächlich Methoden, um ein ASCII-NULL-Zeichen (nul) in eine Datei mit einem Batch-Skript zu schreiben.Wie kann ich ein NULL-ASCII-Zeichen (nul) in einer Variablen mit einem Windows-Stapelscript speichern?
Ich kann jedoch keine Möglichkeit finden, ein NULL-Zeichen in einer Variablen zu speichern.
Nimmt man die Datei null.nil
ein einzelnes NULL-Zeichen enthält, es in set /P
Umleiten Arbeit scheint nicht, wird die Variable leer:
< "null.nil" set /P NULL=
set NULL
for /F
nicht zu funktionieren scheint entweder als es jedes NULL-Zeichen zu entlassen scheint es trifft auf. Unter Berufung auf die gleiche Datei null.nil
, die folgenden Ergebnisse in einer leeren Variable:
for /F %%S in ('type "null.nil"') do set NULL=%%S
set NULL
Ändern der set
Syntax set "NULL=%%S"
oder set NULL=^%%S
ändert nichts, obwohl die Befehlszeile type "null.nil"
die NULL-Zeichen nicht Echo (auf meinem Windows 10 x 64 Maschine, umleiten type
Ausgabe in eine Datei und sehen Sie es mit einem Hex-Editor).
Also wie kann ich eine Variable auf ein einzelnes NULL-Zeichen setzen? Das NULL-Zeichen kann entweder aus einer Datei stammen (wie null.nil
) oder von einem cleveren Hack erzeugt werden, aber ich möchte nicht, dass es direkt in die Batch-Datei eingebettet wird.
Nur eine Vermutung ... Ich würde vermuten, dass intern env. Variablen werden als nullterminierte Zeichenfolgen behandelt, und da eine Zeichenfolge, die nichts als ein null-Zeichen enthält, leer ist (nichts, was den Inhalt betrifft), und ein env festlegen. var to nothing klärt es, du wirst hier ein Problem haben. :-) –
Leider hast du recht, @KenWhite; Ich habe gerade einen Beitrag gefunden, der Ihren begründeten Verdacht bestätigt: [Umgebungsvariablen für einen bestimmten Lauf eines bestimmten Prozesses setzen] (http://stackoverflow.com/a/13092538) – aschipfl
Wenn Sie es irgendwie geschafft haben, eine Variable auf eine Variable zu setzen Einzelnes NULL-Zeichen "Wie sehen Sie voraus, dass Sie * diese Variable verwenden könnten?" – dxiv