![]() |
Problem mit PATH Variable unter XE5 / XE6
Liste der Anhänge anzeigen (Anzahl: 1)
Unter XE5 hat es mir anscheinend irgendwie die PATH-Variable zerschossen.
Weiß jemand, wo Delphi das speichert (wohl nur den 2. Eintrag, siehe Screenhshot in Anlage)? Habe noch ein Backup von der ganzen Platte, will aber nicht alles zurückspielen. Welcher ist der wichtigere Eintrag für Delphi? Übrigens ist das ja ein toller Dialog zur Bearbeitung des Eintrags. Man hat soviel Platz!:( |
AW: Problem mit PATH Variable unter XE5 / XE6
Wird gespeichert unter
Code:
Wenn ich den Pfad korrigieren (überschreiben) möchte, dann lopiere ich mir den immer erst in einen Texteditor. Dort bearbeit ich den dann in Ruhe (und mit viel Platz und Komfort) bevor ich den dann zurückpaste.
HKCU\Software\Embarcadero\BDS\nn.n\Environment Variables
|
AW: Problem mit PATH Variable unter XE5 / XE6
Zitat:
So, da es den Systempath zerschossen hat, funktionieren auch die anderen Delphis hier nicht mehr richtig. Ich nehme an, der PATH-Eintrag war wohl zu lang? Hatte mehr als 2000 Zeichen (habe hier Delphi 2, 5, 2007 und XE-XE6 auf dieser Maschine. Wahr wohl ein wenig zuviel des Guten). Mist, die Windows-System-Wiederherstellung stellt den PATH-Eintrag nicht wieder her!! Jetzt muss ich das wohl aus einem Backup der Registry herholen. Na toll... |
AW: Problem mit PATH Variable unter XE5 / XE6
Der Windows Pfad sollte in
Code:
stehen. Falls Du Glück hast findest Du noch eine passende Kopie in einem evtl. vorhandenen Duplikat des ControlSet. Ansonsten eben die Delphi(s) neu installieren.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
|
AW: Problem mit PATH Variable unter XE5 / XE6
Immerhin hatte ich noch einen Eintrag, der für den ganzen Computer galt (also nicht nur für den aktuellen User), da war auch noch soweit alles benötigte drin.
Das so eine blöde Variable mal richtig wichtig sein könnte... Aber warum müssen die ganzen Komponentenhersteller sich eigentlich in dieser System-Variablen verewigen? Reicht das nicht, wenn das irgendwo in den LIB-Einstellungen von Delphi erfolgt? |
AW: Problem mit PATH Variable unter XE5 / XE6
Zitat:
Wenn man mehr als eine Pfad irgendwo reinmacht, dann kann man doch eine Zwischenvariable verwenden. |
AW: Problem mit PATH Variable unter XE5 / XE6
Das Zumüllen der PATH-Variablen ist ein generelles Problem und wird nicht nur von Delphi und diversen Komponenten-Herstellern extensiv betrieben. Ich habe mir inzwischen damit geholfen, daß ich in Windows eine Handvoll Umgebungsvariablen anlege, mit denen ich dann die Pfade abkürze. Sehr effektiv dabei ist z.B. PF für "c:\Program Files", PF86 für "c:\Program Files (x86)", SQL für "Microsoft SQL Server" oder RSPROG für "C:\Program Files (x86)\Embarcadero\RAD Studio" und RSPUB für "C:\Users\Public\Documents\RAD Studio". Dummerweise bringt die neue Benennung der Verzeichnisse seit XE6 einen neues Paar Variablen mit sich.
Die Pfade für die SQL-Server-Installationen sehen dann z.B. so aus:
Code:
Da bei Update oder Neuinstallation die Programme ihre gewohnten Pfade nicht finden, tauchen auch gern mal Doubletten auf.
%PF%\%SQL%\100\Tools\Binn\;
%PF86%\%SQL%\100\Tools\Binn\; %PF86%\%SQL%\100\Tools\Binn\VSShell\Common7\IDE\; %PF86%\%SQL%\100\DTS\Binn\; %PF86%\%SQL%\110\Tools\Binn\ManagementStudio\; %PF86%\%SQL%\110\Tools\Binn\; %PF86%\%SQL%\110\DTS\Binn\; %PF%\%SQL%\110\Tools\Binn\; %PF%\%SQL%\110\DTS\Binn\; |
AW: Problem mit PATH Variable unter XE5 / XE6
Und jetzt kommt das Ganze noch in eine %SQLServer% Variable, welche dann in den %PATH% eingebaut wird.
Damit würde der Path schön übersichtlich bleiben und wenn du mal einen Pfad entfernen/hinzufügen willst, dann braucht man das nur in der eigenen Variable zu machen und es bleiben keine Leichen in der großen Variable zurück, vorallem beim Deinstallieren. |
AW: Problem mit PATH Variable unter XE5 / XE6
Zitat:
Da werde ich mir das mal entsprechend nachbauen... |
AW: Problem mit PATH Variable unter XE5 / XE6
Ich habe alle Einträge in PATH, die ich brauche, in einer eigenen Variable drin. In Path steht nur %Paths%. So sehe ich sofort, wenn ein Programm daran etwas ändert. Und ich weiß auch genau was da vorher stand, wenn ein Programm es kaputt macht.
Mit der Länge hatte ich noch keine Probleme, dafür ist das in der Tat eine gute Idee. |
AW: Problem mit PATH Variable unter XE5 / XE6
bei mir macht das XE2/3 auch regelmäßig, ich habe hier immer wieder richtige Angst was zu installieren ....
Meistens löst sich das Problem mit einem Reboot ohne was zu editieren (da macht man schnell was kaputt)! |
AW: Problem mit PATH Variable unter XE5 / XE6
Zitat:
In einer Batch-Datei mit den Befehlen Set VarName=Value die Environment Variablen jeweils festlegen und schrittweise verdichten und dann die Batch-Datei im Admin-Modus ausführen lassen? Funktioniert das so? |
AW: Problem mit PATH Variable unter XE5 / XE6
Hmh, mit einer BAT-Datei (selbst gestartet im Adminmodus) sind die Environment-Variablen anscheinend nur während der Shell-Sitzung gültig und gehen verloren, wenn ich die CMD-Shell schließe.
Muss ich also alles doch manuell in die Registry eintragen, oder gibt es noch einen anderen Weg (mal abgesehen davon, ein extra Programm dafür zu schreiben)? Hier ist die Batch-Datei, die ich mir ausgedacht hatte:
Code:
REM Delphi *****************************************************************************
Set XE5=C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin;C:\Users\Public\Documents\RAD Studio\12.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin64;C:\Users\Public\Documents\RAD Studio\12.0\Bpl\Win64; Set XE4=C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\bin;C:\Users\Public\Documents\RAD Studio\11.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\bin64;C:\Users\Public\Documents\RAD Studio\11.0\Bpl\Win64; Set XE3=C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin;C:\Users\Public\Documents\RAD Studio\10.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin64;C:\Users\Public\Documents\RAD Studio\10.0\Bpl\Win64; Set XE2=C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin;C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin64;C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl\Win64; Set XE=C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin;C:\Users\Public\Documents\RAD Studio\8.0\Bpl; Set D2007=C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bin;C:\Users\Public\Documents\RAD Studio\5.0\Bpl; Set D5=C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin; Set D2=c:\Delphi2\Delphi20\bin;c:\Delphi2\Delphi20\LIB; REM TMS *********************************************************************************** Set TMS=C:\Users\Harry-Dev\Documents\tmssoftware\TMS Component Pack\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Charts\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Spreadgrid\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Cloud Pack\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Scripter\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Diagram Studio\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Pack for FireMonkey\bpl\;D:\Compo\DXE3\FMX\TMS Pack for FireMonkey\bpl\;D:\Compo\DXE5\FMX\TMS Pack for FireMonkey\bpl\; REM Progs ********************************************************************************** Set CollabNet=C:\Program Files (x86)\CollabNet\Subversion Client; Set ASys=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\; Set Acronis=C:\Program Files (x86)\Common Files\Acronis\SnapAPI\; REM Pathes konstruieren ********************************************************************* Set Pathes=%XE5%;%XE4%;%XE3%;%XE2%;%XE%;%D2007%;%D5%;%D2%;%TMS%;%CollabNet%;%ASys%;%Acronis% REM ******* und Path setzen ****************************************************************** Path %Pathes% |
AW: Problem mit PATH Variable unter XE5 / XE6
Benutze den Befehl Setx. Damit kannst Du Systemvariablen und Benutzervariablen setzen, so als wenn Du es über die Systemeigenschaften oder in der Registry reinschreibst.
|
AW: Problem mit PATH Variable unter XE5 / XE6
Danke für den Tipp.
Allerdings gelingt die Umsetzung dann nur teilweise. Habe zwar schon das Gleichheitszeichen durch ein Leerzeichen ersetzt, aber dennoch kommen dann folgende Hinweise:
Code:
Manchmal geht es, manchmal nicht. Was mache ich falsch?
C:\Users\Harry-Dev>Setx D2007 C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bin
;C:\Users\Public\Documents\RAD Studio\5.0\Bpl; FEHLER: Ungültige Syntax. Die Standardoption darf nicht mehr als 2 Mal verwendet werden. Geben Sie "SETX /?" ein, um die Syntax anzuzeigen. C:\Users\Harry-Dev>Setx D5 C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx D2 c:\Delphi2\Delphi20\bin;c:\Delphi2\Delphi20\LIB; ERFOLGREICH: Angegebener Wert wurde gespeichert. |
AW: Problem mit PATH Variable unter XE5 / XE6
Schließe die Pfade mit " ein, besonders wenn diese Leerzeichen enthalten. Sonst werden die zerhackt bzw. als weitere Parameter angesehen.
|
AW: Problem mit PATH Variable unter XE5 / XE6
Ja, das hilft (außer in einem Fall, vielleicht ist die Zeile zu lang?).
Außerdem irritiert mich, das der Inhalt von %Pathes% anscheinend nicht alle Einträge enthält, wenn man den Wert ECHO abfrägt. Hier die Meldungen:
Code:
Und hier die Abfrage von Echo %Pathes%
C:\Users\Harry-Dev>REM Delphi **************************************************
*************************** C:\Users\Harry-Dev>Setx XE5 "C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\ bin";"C:\Users\Public\Documents\RAD Studio\12.0\Bpl";"C:\Program Files (x86)\Emb arcadero\RAD Studio\12.0\bin64";"C:\Users\Public\Documents\RAD Studio\12.0\Bpl\W in64"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx XE4 "C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\ bin";"C:\Users\Public\Documents\RAD Studio\11.0\Bpl";"C:\Program Files (x86)\Emb arcadero\RAD Studio\11.0\bin64";"C:\Users\Public\Documents\RAD Studio\11.0\Bpl\W in64"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx XE3 "C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\ bin";"C:\Users\Public\Documents\RAD Studio\10.0\Bpl";"C:\Program Files (x86)\Emb arcadero\RAD Studio\10.0\bin64";"C:\Users\Public\Documents\RAD Studio\10.0\Bpl\W in64"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx XE2 "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\b in";"C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl";"C:\Program Files (x86)\Em barcadero\RAD Studio\9.0\bin64";"C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl \Win64"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx XE "C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bi n";"C:\Users\Public\Documents\RAD Studio\8.0\Bpl"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx D2007 "C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bi n";"C:\Users\Public\Documents\RAD Studio\5.0\Bpl"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx D5 "C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx D2 "c:\Delphi2\Delphi20\bin;c:\Delphi2\Delphi20\LIB"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>REM TMS ***************************************************** ****************************** C:\Users\Harry-Dev>Set TMS "C:\Users\Harry-Dev\Documents\tmssoftware\TMS Compone nt Pack\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Charts\bpl\ ";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Spreadgrid\bpl\";"C:\Us ers\Harry-Dev\Documents\tmssoftware\TMS Cloud Pack\bpl\";"C:\Users\Harry-Dev\Doc uments\tmssoftware\TMS Scripter\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\ TMS Diagram Studio\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Pack for FireMonkey\bpl\";"D:\Compo\DXE3\FMX\TMS Pack for FireMonkey\bpl\";"D:\Compo\DXE5 \FMX\TMS Pack for FireMonkey\bpl\"; Die Umgebungsvariable "TMS "C:\Users\Harry-Dev\Documents\tmssoftware\TMS Compone nt Pack\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Charts\bpl\ ";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Advanced Spreadgrid\bpl\";"C:\Us ers\Harry-Dev\Documents\tmssoftware\TMS Cloud Pack\bpl\";"C:\Users\Harry-Dev\Doc uments\tmssoftware\TMS Scripter\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\ TMS Diagram Studio\bpl\";"C:\Users\Harry-Dev\Documents\tmssoftware\TMS Pack for FireMonkey\bpl\";"D:\Compo\DXE3\FMX\TMS Pack for FireMonkey\bpl\";"D:\Compo\DXE5 \FMX\TMS Pack for FireMonkey\bpl\";" ist nicht definiert. C:\Users\Harry-Dev>REM Progs *************************************************** ******************************* C:\Users\Harry-Dev>Setx CollabNet "C:\Program Files (x86)\CollabNet\Subversion C lient"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx ASys C:\Windows\system32;C:\Windows;C:\Windows\System32\ Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>Setx Acronis "C:\Program Files (x86)\Common Files\Acronis\Sna pAPI\"; ERFOLGREICH: Angegebener Wert wurde gespeichert. C:\Users\Harry-Dev>REM Pathes konstruieren ************************************* ******************************** C:\Users\Harry-Dev>Setx Pathes ;;;;;;C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin;;c:\ Delphi2\Delphi20\bin;c:\Delphi2\Delphi20\LIB;;;;C:\Windows\system32;C:\Windows;C :\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;; ERFOLGREICH: Angegebener Wert wurde gespeichert.
Code:
Da fehlen wohl alle Einträge, wo Leerzeichen in den Pfadangaben sind.
C:\Users\Harry-Dev>echo %pathes%
;;;;;;C:\Delphi5\Projects\Bpl;C:\Delphi5\Bin;;c:\Delphi2\Delphi20\bin;c:\Delphi2 \Delphi20\LIB;;;;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Wind ows\System32\WindowsPowerShell\v1.0\;; |
AW: Problem mit PATH Variable unter XE5 / XE6
Ja, Du solltest jede einzelne Variable dann auch in doppelte Hochkomma setzen in dieser Zeile:
Code:
Set Pathes=%XE5%;%XE4%;%XE3%;%XE2%;%XE%;%D2007%;%D5%;%D2%;%TMS%;%CollabNet%;%ASys%;%Acronis%
|
AW: Problem mit PATH Variable unter XE5 / XE6
Ja, das hilft, allerdings werden dann nur max. 1024 Zeichen gespeichert ? Oder nur von Echo ausgegeben?
Code:
Der Wert steht aber auch in der Registry drin. Das Editfenster der Registry zeigt nicht alle Zeichen an, und auch wenn man den Schlüssel exportiert, sieht man, das nicht alles da ist:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten. C:\Users\Harry-Dev>echo %pathes% C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin;C:\Users\Public\Documents \RAD Studio\12.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin64;C: \Users\Public\Documents\RAD Studio\12.0\Bpl\Win64;;C:\Program Files (x86)\Embarc adero\RAD Studio\11.0\bin;C:\Users\Public\Documents\RAD Studio\11.0\Bpl;C:\Progr am Files (x86)\Embarcadero\RAD Studio\11.0\bin64;C:\Users\Public\Documents\RAD S tudio\11.0\Bpl\Win64;;C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin;C:\ Users\Public\Documents\RAD Studio\10.0\Bpl;C:\Program Files (x86)\Embarcadero\RA D Studio\10.0\bin64;C:\Users\Public\Documents\RAD Studio\10.0\Bpl\Win64;;C:\Prog ram Files (x86)\Embarcadero\RAD Studio\9.0\bin;C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin64;C:\Users\ Harry-Dev\Documents\RAD Studio\9.0\Bpl\Win64;;C:\Program Files (x86)\Embarcadero \RAD Studio\8.0\bin;C:\Users\Public\Documents\RAD Studio\8.0\Bpl;;C:\Program Fil es (x86)\CodeGear\RAD Studio\5.0\bin;C:\Users\Public\Documents\R C:\Users\Harry-Dev>
Code:
[HKEY_USERS\S-1-5-21-607686937-1886794736-2999868438-1000\Environment]
"Path"="C:\\Users\\Public\\Documents\\RAD Studio\\9.0\\Bpl;C:\\Users\\Public\\Documents\\RAD Studio\\5.0\\Bpl;C:\\Delphi2\\DELPHI20\\LIB" "TEMP"="G:\\Work\\Temp" "TMP"="G:\\Work\\Temp" "MOZ_PLUGIN_PATH"="C:\\Program Files\\Tracker Software\\PDF Viewer\\Win32\\" "D5"="C:\\Delphi5\\Projects\\Bpl;C:\\Delphi5\\Bin;" "D2"="c:\\Delphi2\\Delphi20\\bin;c:\\Delphi2\\Delphi20\\LIB;" "ASys"="C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;" "XE5"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\12.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\12.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\12.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\12.0\\Bpl\\Win64;" "XE4"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\11.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\11.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\11.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\11.0\\Bpl\\Win64;" "XE3"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\10.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\10.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\10.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\10.0\\Bpl\\Win64;" "Pathes"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\12.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\12.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\12.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\12.0\\Bpl\\Win64;;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\11.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\11.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\11.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\11.0\\Bpl\\Win64;;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\10.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\10.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\10.0\\bin64;C:\\Users\\Public\\Documents\\RAD Studio\\10.0\\Bpl\\Win64;;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\9.0\\bin;C:\\Users\\Harry-Dev\\Documents\\RAD Studio\\9.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\9.0\\bin64;C:\\Users\\Harry-Dev\\Documents\\RAD Studio\\9.0\\Bpl\\Win64;;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\8.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\8.0\\Bpl;;C:\\Program Files (x86)\\CodeGear\\RAD Studio\\5.0\\bin;C:\\Users\\Public\\Documents\\R" "XE2"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\9.0\\bin;C:\\Users\\Harry-Dev\\Documents\\RAD Studio\\9.0\\Bpl;C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\9.0\\bin64;C:\\Users\\Harry-Dev\\Documents\\RAD Studio\\9.0\\Bpl\\Win64;" "XE"="C:\\Program Files (x86)\\Embarcadero\\RAD Studio\\8.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\8.0\\Bpl;" "D2007"="C:\\Program Files (x86)\\CodeGear\\RAD Studio\\5.0\\bin;C:\\Users\\Public\\Documents\\RAD Studio\\5.0\\Bpl;" "CollabNet"="C:\\Program Files (x86)\\CollabNet\\Subversion Client;" "Acronis"="C:\\Program Files (x86)\\Common Files\\Acronis\\SnapAPI\";" |
AW: Problem mit PATH Variable unter XE5 / XE6
setx kann nur 1024 byte verarbeiten. Versuche es doch mal alternativ mit
![]() |
AW: Problem mit PATH Variable unter XE5 / XE6
Wenn du einer Variablen einen Wert zuweisen willst und dieser Wert ein/mehrere Leerzeichen enthält, dann musst du den Wert in Anführungszeichen setzen
Code:
Wenn ich dann aber das hier sehe
SET(X) <Varname>="<Value with Spaces>"
Code:
dann habe ich die Vermutung, dass du das nicht verstanden hast ;)
Setx XE5 "C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin";"C:\Users\Public\Documents\RAD Studio\12.0\Bpl";"C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin64";"C:\Users\Public\Documents\RAD Studio\12.0\Bpl\Win64";
Denn so wäre es richtig
Code:
Wenn du weiterhin diese dann so zusammenfassen möchtest
Setx XE5 "C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin;C:\Users\Public\Documents\RAD Studio\12.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin64;C:\Users\Public\Documents\RAD Studio\12.0\Bpl\Win64;"
Code:
Dann macht das Semikolon am Ende bei der Wertzuweisung von XE5 irgendwie keinen Sinn. Macht nichts kaputt, sieht aber doof aus und ist eben überflüssig
SET(X) <Varname>="%XE5%;%XE4%
|
AW: Problem mit PATH Variable unter XE5 / XE6
Da gibt es zudem noch einen Environment-Editor. Dabei prüft der auch, ob bestimmte Pfade auch überhaupt existieren, das ist schon mal nicht schlecht, habe direkt ein paar nicht mehr existierende Pfade eleminieren können. Deswegen ging wohl auch das Setzen der TMS-Variable nicht, weil dort ein nicht mehr existenter Path drin war.
|
AW: Problem mit PATH Variable unter XE5 / XE6
Pathed kommt aber auch nicht mit Leerzeichen im Path zurecht, die er z.B. über %XE5% erhält (auch wenn in doppelten Anführungszeichen). Man kann wohl auch immer nur einen Pfad anhängen.
|
AW: Problem mit PATH Variable unter XE5 / XE6
Liste der Anhänge anzeigen (Anzahl: 1)
Also, ich habe das jetzt so für mich gelöst, dass ich die Einträge nun manuell in die Registry reinnehme, wie in der Anlage ersichtlich.
Wenn ich in einer DOS-Shell die Werte dann abfrage, sieht das so aus (alle Einträge sind vorhanden):
Code:
Was auffällt ist, dass am Ende der Path-Abfrage nochmal "%Pathes%" steht, also eigentlich irgendwie doppelt oder?C:\Users\Harry-Dev>echo %pathes% %XE5%;%XE4%;%XE3%;%XE2%;%XE%;%D2007%;%D5%;%D2%;%TMS%;%CollabNet%;%ASys%;%Acronis % C:\Users\Harry-Dev>echo %path% C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin;C:\Users\Public\Documents \RAD Studio\12.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin64;C: \Users\Public\Documents\RAD Studio\12.0\Bpl\Win64;C:\Program Files (x86)\Embarca dero\RAD Studio\11.0\bin;C:\Users\Public\Documents\RAD Studio\11.0\Bpl;C:\Progra m Files (x86)\Embarcadero\RAD Studio\11.0\bin64;C:\Users\Public\Documents\RAD St udio\11.0\Bpl\Win64;C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin;C:\Us ers\Public\Documents\RAD Studio\10.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin64;C:\Users\Public\Documents\RAD Studio\10.0\Bpl\Win64;C:\Delphi5 \Projects\Bpl;C:\Delphi5\Bin;C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\b in;C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl;C:\Program Files (x86)\Embarc adero\RAD Studio\9.0\bin64;C:\Users\Harry-Dev\Documents\RAD Studio\9.0\Bpl\Win64 ;C:\Program Files (x86)\CollabNet\Subversion Client;C:\Program Files (x86)\Embar cadero\RAD Studio\8.0\bin;C:\Users\Public\Documents\RAD Studio\8.0\Bpl;C:\Progra m Files (x86)\CodeGear\RAD Studio\5.0\bin;C:\Users\Public\Documents\RAD Studio\5 .0\Bpl;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System 32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\; C:\Users\Harry-Dev\Documents\tmssoftware\TMS Component Pack\bpl\;C:\Users\Harry- Dev\Documents\tmssoftware\TMS Advanced Charts\bpl\;C:\Users\Harry-Dev\Documents\ tmssoftware\TMS Advanced Spreadgrid\bpl\;c:\Delphi2\Delphi20\LIB;C:\Users\Harry- Dev\Documents\tmssoftware\TMS Cloud Pack\bpl\;C:\Users\Harry-Dev\Documents\tmsso ftware\TMS Scripter\bpl\;C:\Users\Harry-Dev\Documents\tmssoftware\TMS Diagram St udio\bpl\;D:\Compo\DXE3\FMX\TMS Pack for FireMonkey\bpl\;D:\Compo\DXE5\FMX\TMS P ack for FireMonkey\bpl\;%Pathes% C:\Users\Harry-Dev> Was mir auch noch nicht ganz klar ist: Sollte ich diese Einträge hier für den aktuellen User machen, oder besser in der Path-Variable in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Environment Welche Bedeutungen haben eigentlich in Delphi der Environment-Dialog. Da haben wir ja einmal die Anzeige für die System-Variablen, wo offensichtlich die des aktuellen Users angezeigt werden. Dann gibt es noch die Liste "Vom Anwender überschrieben". Dort steht aber in jedem Delphi (also z.B. 2007, XE, XE5) jeweils etwas anderes drin. Mir ist insofern nicht klar, was passiert, wenn ich in dem Delphi Dialog eine Aktion "überschreiben" vornehme. |
AW: Problem mit PATH Variable unter XE5 / XE6
Hmmm, wenn du dir den Eintrag in
Code:
und
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path
Code:
anschaust, dann sollte dir doch eigentlich auffallen, dass diese beiden Einträge kombiniert werden und als resultierendes Ergebnis für die Umgebungsvariable %PATH% genommen wird.
HKCU\Environment\Path
Wie du das jetzt verwendest ist ja egal, ich persönlich würde das global eintragen, da auch die Programme diese Pfade global eingetragen haben. |
AW: Problem mit PATH Variable unter XE5 / XE6
Oh, dann frage ich mich, ob der Wert %Pathes% überhaupt funktioniert.
Werde ich gleich mal austesten. Jedenfalls hatte ich Sebastian so verstanden, der weiter hier in diesem Beitrag sagte, dass "er sofort sehen würde, wenn sich an dem Eintrag etwas ändern würde". Daher ging ich davon aus, er meinte einen solchen Eintrag (in der Registry). |
AW: Problem mit PATH Variable unter XE5 / XE6
Zitat:
|
AW: Problem mit PATH Variable unter XE5 / XE6
Was ist denn aus dem guten alten CMD mit Ausgabeumleitung geworden?
Kommandozeile starten und dann
Delphi-Quellcode:
eintippen.
path > D:\pfad.txt
|
AW: Problem mit PATH Variable unter XE5 / XE6
Zitat:
|
AW: Problem mit PATH Variable unter XE5 / XE6
Zitat:
![]() |
AW: Problem mit PATH Variable unter XE5 / XE6
Zitat:
![]() Einfach einen neuen Identifier hinzufügen, z.B. PATH nennen und lesen aus Umgebungsvariable PATH. Alternativ kann man auch aus der Registry mit 64-Bit aktiviert aus folgendem Pfad lesen:
Code:
Bei mir funktionierte es mit der Umgebungsvariablen aber problemlos.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH
Zitat:
|
AW: Problem mit PATH Variable unter XE5 / XE6
Liste der Anhänge anzeigen (Anzahl: 1)
So, jetzt vorab mal vielen Dank für Eure hilfreichen Hinweise, damit ist es mir gelungen, eine für mich brauchbare Lösung zu gestalten.
In der Anlage habe ich mal einen Screenshot der Registry-Seite gelegt (am besten den zur Seite legen, wenn Ihr hier weiter lest). Entscheidend ist also, dass man die Einträge in dem Schlüssel
Code:
macht.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH
Dort steht bei mir jetzt nur noch %Pathes% drin. Pathes ist ein Schlüssel, den ich selber angelegt habe und der vom Typ "Wert der erweiterbaren Zeichenfolge" ist (also "REG_EXPAND_SZ"). Erweiterbar ist deswegen wichtig, weil ich hier drin quasi "Alias"-Werte ablege, die erst noch erweitert werden müssen, um Sinn zu machen. Im Pathes-Schlüssel steht nun folgendes drin:
Code:
Die einzelnen Variablen habe ich als normale Schlüssel angelegt oder als erweiterbaren Schlüssel, falls er im Wert bereits eine Variable enthält (vgl. anl. Screenshot).
%XE5%;%XE4%;%XE3%;%XE2%;%XE%;%D2007%;%D5%;%D2%;%CollabNet%;%ASys%;%Acronis%;%TMS%
Für %XE5% ist also z.B. folgendes eingetragen:
Code:
Vorteil des ganzen ist, dass man schnell sieht, wenn ein Programm etwas in den Path-Schlüssel hinzufügt. Außerdem ist der Inhalt kurz gehalten. Sinn des ganzen ist es hier zu vermeiden, was mir hier vor 2 Tagen passiert ist: Offensichtlich war der "normale" Path-Eintrag so lang, dass ein Programm, dass den Path erweitern wollte, den ganzen Eintrag verstümmelt hatte. Daher funktioniert danach bei den unterschiedlichen Delphi-Installationen das eine oder andere nicht mehr so richtig.
C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin;C:\Users\Public\Documents\RAD Studio\12.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin64;C:\Users\Public\Documents\RAD Studio\12.0\Bpl\Win64
So bleibt das jetzt übersichtlich und ist im Bedarfsfall schnell zu reparieren. Wenn man jetzt z.B. Delphi startet und unter Tools, Umgebungsvariablen nachsieht, werden alle expandierten Verzeichnisse angezeigt. Was tatsächlich im Path-Eintrag drin steht, kann man in einer DOS-Shell mit "Echo %Path%" kontrollieren. UND noch ein wichtiger Hinweis: Die Einträge in der Registry sind nicht sofort wirksam, sondern z.T. erst nach einmal abmelden und neu anmelden. Wenn jemand eine Möglichkeit kennt, das durch einen Befehl sofort im System zu aktualisieren, wäre ich für einen Hinweis dankbar. |
AW: Problem mit PATH Variable unter XE5 / XE6
Zitat:
![]() |
AW: Problem mit PATH Variable unter XE5 / XE6
Ach ja stimmt, schon fast wieder vergessen!
Es reicht also schon ein Miniprogramm, wo man letztlich nur das verwenden muss:
Delphi-Quellcode:
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment')));
|
AW: Problem mit PATH Variable unter XE5 / XE6
Du mußt nur mal ausprobieren, ob es wirklich Unicode sein kann, oder ob das eventiell als ANSI übergeben werden muß.
Im MSDN steht da nichts explizit dazu und der Schweizer Code ist so alt, daß es damals noch 7 Jahre lang nur ANSI-Delphis gab. |
AW: Problem mit PATH Variable unter XE5 / XE6
Liste der Anhänge anzeigen (Anzahl: 1)
Ich verstehe nicht,warum Ihr das in der Registrierung ändert.Geht das nicht ganz normal in der Systemsteuerung?
|
AW: Problem mit PATH Variable unter XE5 / XE6
Liste der Anhänge anzeigen (Anzahl: 2)
Ja, das hat insofern einen Grund, als dass man in den Dialogen vom Systemeigenschaften-Dialog keine Einträge mit "Reg_Expand_SZ" anlegen kann, sondern nur normale Variablen. Außerdem sind dort die Dialoge und Editfelder noch kleiner als die des Registry-Editors und die Übersicht ist einfach besser in dem großen Fenster des Registry-Editors, als in dem kleinen Minifenstern des Systemeigenschaften-Dialogs (das ist echt unzumutbar, damit zu arbeiten).
Übrigens konnte ich gerade noch mal den Test machen: Hatte meinen PC aus anderen Gründen aus einem Backup wiederhergestellt und danach nach Anlage des "%Pathes" Eintrags wie oben beschrieben, Delphi XE6 installiert. Nun konnte man die neuen Einträge wunderbar im Path-Eintrag sehen und dafür eine neue Systemvariable %XE6% anlegen und somit den Pathes-Eintrag ergänzen. Wirklich nützliche Sache. Edit: Hab mal ein entsprechendes Mini-Programm dazu geschrieben (siehe anliegenden Screenshot) und dort auch eine kurze Info und den Link auf diesen Thread integriert, falls man dazu mal noch was nachlesen möchte. In der ZIP-Datei ist die Kompilierte Exe-Datei (XE6) und das Projekt selber drin. Könnt Ihr natürlich nach Lust und Laune verwenden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz