Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Commandline mit WideString speichern? (https://www.delphipraxis.net/97108-commandline-mit-widestring-speichern.html)

Garfield 4. Aug 2007 22:14


Commandline mit WideString speichern?
 
Nachdem ich das Problem mit CreateProcessW lösen konnte und sich Verzeichnisnamen mit Unicodezeichen korrekt übergeben lassen, möchte ich die Commandline auch speichern können.

Bei Ansicode-Batchdateien verwende ich eine TStringList, welche mit SaveToFile gespeichert wird. Hier versuchte ich zunächst eine TTNTStringList. Jedoch scheitert die Ausführung anscheinend bereits am Byte Order Mark. Entferne ich dies, scheitert es an den 00, welche den Ansicodezeichen angehängt wurden. Entferne ich diese ebenfalls, werden die Unicodezeichen falsch decodiert. Vermutlich weil TTNTStringList die Codierung falsch erkennt. Bei der Verwendung von TWideStringList dasselbe Bild. Lediglich wenn in der Commandline kein Unicodezeichen enthalten sind, speichert TWideStringList als Ansi und die kann dann ausgeführt werden.

Die Microsoft GUI zu RoboCopy für XP speichert seine Scripts als Commandline. Diese sollen laut Editor UTF-8 kodiert sein. Wird die *.CMD allerdings ausgeführt, werden die Unicodezeichen falsch decodiert. Das es gehen könnte/sollte, zeigt CreateProcessW.

Zum Parsen von WideParamStr gibt es Routinen. Für das Speichern von WideCommandline konnte ich bisher nichts finden. Weiß da jemand Bescheid?

Garfield 5. Aug 2007 14:33

Re: Commandline mit WideString speichern?
 
Die CMD.exe enthält den Parameter
Zitat:

/u

Formatiert die Ausgabe interner Befehle als Pipe oder Datei im Unicode-Format.
Bei Active Directory gibt es verschiedene Stringklassen, so auch String (Unicode).


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz