Delgado Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 Hallo zusammen, hier hat bestimmt Jemand eine schnelle und einfache Lösung: Es geht um die Umgebungsvariable PATH: Ich möchte einfach eine Variable ändern, ohne aber den kompletten PATH ändern zu müssen: C:\Programme\Java\jre1.6.0_07\bin soll mit C:\Programme\Java\jre6\bin ersetzt werden. Hat da Jemand eine Lösung? Vielen Dank. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 (bearbeitet) Beschreibe Dein Problem bitte so, dass man es versteht. PATH ist eine Variable und enthält eine Liste mit Pfadangaben, die durchsucht werden soll Bearbeitet 14. Oktober 2009 von flashpixx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 14. Oktober 2009 Autor Teilen Geschrieben 14. Oktober 2009 Ich möchte die in der Umgebungsvariablen PATH einen bestimmten Pfad ändern: C:\Programme\Java\jre1.6.0_07\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\WBEM;D:\Perl\bin\;d:\MSSQL7\BINN;C:\IFOR\WIN\BIN;C:\IFOR\WIN\BIN\EN_US;D:\ptc\mechWildfire_II\bin;;C:\Programme\Microsoft SQL Server\80\Tools\Binn\;C:\Programme\QuickTime\QTSystem\ in C:\Programme\Java\jre6\bin;D:\Windows Resource Kits\Tools\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\WBEM;D:\Perl\bin\;d:\MSSQL7\BINN;C:\IFOR\WIN\BIN;C:\IFOR\WIN\BIN\EN_US;D:\ptc\mechWildfire_II\bin;;C:\Programme\Microsoft SQL Server\80\Tools\Binn\;C:\Programme\QuickTime\QTSystem\ Dass soll aber per Script im Hintergrund ablaufen. Gibt es da eine Möglichkeit? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 Je nachdem ob es sich um User- oder Systembezogenen Pfad hast, sind die Daten in den entsprechenden Registry Schlüsseln zu finden und können ersetzt werden. Der Systempfad ist unter: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path Für den aktuellen user dann entsprechend HKEY_CURRENT_USER Es muss lediglich eine einfache String-Replace Option durchgeführt werden Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 Wurde der JRE-Pfad manuell an den Anfang gesetzt? Normalerweise sollte aus Sicherheitsgründen nichts vor %SystemRoot%\system32 und %SystemRoot% stehen. Desweiteren, würde ich JRE-Pfade immer in eigene Umgebungsvariablen auslagern. Ergo: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\WBEM;D:\Perl\bin\;d:\MSSQL7\BIN N;C:\IFOR\WIN\BIN;C:\IFOR\WIN\BIN\EN_US;D:\ptc\mec hWildfire_II\bin;;C:\Programme\Microsoft SQL Server\80\Tools\Binn\;C:\Programme\QuickTime\QTSystem\;%JAVA_HOME%\bin;D:\Windows Resource Kits\Tools\; %ProgramFiles%\Java\jre6 Alternativ geht natürlich auch: C:\Programme\Java\jre6 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 Anfragen per PM helfen nicht, dass Du schneller/umfangreichere eine Antwort bekommst. Deine Fragen gehören in diesen Thread und vielleicht solltest Du Dir einmal überlegen, dass Du eine entsprechende Programmier- oder Scriptsprache brauchst, um solche Dinge automatisiert zu ändern. Ansonsten schließe ich mich TDM an, dass so eine Lösung die sinnvollere wäre Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 14. Oktober 2009 Autor Teilen Geschrieben 14. Oktober 2009 Ich habe bereits mich versucht: rem @echo off & setlocal EnableDelayedExpansion Set AlterPfad=C:\Programme\Java\\jre1.6.0_07\bin Set NeuerPfad=C:\Programme\Java\jre6\bin For %%A in ("%Path:;=" "%") do if /i not %%A=="%AlterPfad%" @set "NeuerPfad=!NeuerPfad!%%~A;" goto end :end echo %NeuerPfad% pause leider ohne Erfolg... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 Mit einer Batch Datei o.ä. wirst Du nicht weit kommen, die Umgebungsvariablen bzw die Änderungen sind nur so lange gültig wie das Fenster/Session besteht. Du musst sie wie schon gesagt in der Registry ändern, um dauerhaft die Einstellungen zu übernehmen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 14. Oktober 2009 Autor Teilen Geschrieben 14. Oktober 2009 Hättest du da einen ersten Ansatz für mich? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HJST1979 Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 Hallo jetzt nur mal dumm gefragt warum stellst du nicht unter Systemeigenschaften -> Umgebungsvariablen die PATH- Variable richtig ?? Oder wenn du von Programm zu Programm unterschiedliche Java- Versionen verwendest könntest du doch auch in der Stapelverarbeitungsdatei vor java den richtigen Pfad angeben !? Gruß Hans-Jörg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 14. Oktober 2009 Autor Teilen Geschrieben 14. Oktober 2009 Es soll auf mehreren Maschinen per Script JAVA upgedated werden - Installation + Umgebungsvariable soll ich Hintergrund ablaufen/geändert werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 Es soll auf mehreren Maschinen per Script JAVA upgedated werden - Installation + Umgebungsvariable soll ich Hintergrund ablaufen/geändert werden. Script != Sprache. Vielleicht wäre es hilfreich, wenn Du mal die Größenordnung über die wir sprechen, nennst. 1 Rechner, 100, 1000, 10.000...... Wenn alle Rechner identische Konfigs haben, dann kannst Du einfach einmal per Hand die Daten ändern (am Besten so wie TDM vorgeschlagen hat), den Registry Schlüssel exportieren und einmal bei allen Rechnern per Script einfach importieren. Wenn Du aber keine identische Konfiguration hast, dann geht das nicht. Dann muss etwas Programmieren, wozu aber eine Batch Datei nicht reichen wird! Dann musst Du schon mal die Sprachen nennen, die Dir zur Verfügung stehen. Lass Dir nicht reden kleinen Sch***** aus der Nase ziehen. Wir versuchen ja schon zu helfen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 Wenn alle Rechner identische Konfigs haben, dann kannst Du einfach einmal per Hand die Daten ändern (am Besten so wie TDM vorgeschlagen hat), den Registry Schlüssel exportieren und einmal bei allen Rechnern per Script einfach importieren. Öhm, würd ich so nicht machen. Besser wär vielleicht eine Batch-Datei, die die benutzerlose Installation von Java startet, den Pfad als Parameter bekommt und diesen via setx einfach in die JAVA_HOME-Variable schreibt. hmm, womöglich will ich grad wieder mit Kanonen auf Spatzen schießen. :floet: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 14. Oktober 2009 Autor Teilen Geschrieben 14. Oktober 2009 Es geht um etwa 100 Rechner, die aber zum Großteil verschieden Konfiguriert sind - mit versch. Programmen und auch versch. Betriebssystemen (Windows XP 32 Bit und Windows XP 64 Bit) Ich habe bereits ein Batch, dass mir per AT-Befehl und Übergabe Java 6 Update 16 installiert. Nach der Installation habe ich nur dass Problem, dass Windows immer noch im PATH die ältere Version (Java 6 Update 7) stehen hat. Ändere ich den Path auf Java 6 Update 16 (C.\Program Files (86x)\Java\jre6\bin) erkennt Windows die neue Windows Installation (java -version) - mache ich das nicht, greift Windoff immer auf die ältere Version zu. Problem taucht nur auf, wenn ich JAVA per Batch SILENT installiere (was notwendig ist). Nur die JAVA_HOME Variable auf die neue Version zu setzten erbrachte keinen Erfolg. Anscheinend muss der Eintrag im PATH stehen. Kanonen wären schon angebracht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 14. Oktober 2009 Teilen Geschrieben 14. Oktober 2009 Nur die JAVA_HOME Variable auf die neue Version zu setzten erbrachte keinen Erfolg. Anscheinend muss der Eintrag im PATH stehen. Deswegen sollte JAVA_HOME ja auch in den Pfad(, aber eben als Variable und nicht einfach den Inhalt kopieren). Jedenfalls solltest du weg vom normalen "set", setx funktioniert in dem Zusammenhang mit Umgebungsvariablen viel besser. Geh ich recht in der Annahme, das es sich um eine Art Softwareverteilung handelt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 15. Oktober 2009 Autor Teilen Geschrieben 15. Oktober 2009 Achso meinst du dass: D:\Windows Resource Kits\Tools\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\WBEM;D:\Perl\bin\;d:\MSSQL7\BINN;C:\IFOR\WIN\BIN;C:\IFOR\WIN\BIN\EN_US;D:\ptc\mechWildfire_II\bin;;C:\Programme\Microsoft SQL Server\80\Tools\Binn\;C:\Programme\QuickTime\QTSystem\;%JAVA_HOME% Dass ich die JAVA_HOME Variable mit in die PATH Variable nehme?! Aber dann muss ich einen Weg finden die JAVA_HOME Variable DAUERHAFT zu setzten. Genau es handelt sich um eine Art Softwareverteilung.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 15. Oktober 2009 Teilen Geschrieben 15. Oktober 2009 D:\Windows Resource Kits\Tools\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\WBEM;D:\Perl\bin\;d:\MSSQL7\BINN;C:\IFOR\WIN\BIN;C:\IFOR\WIN\BIN\EN_US;D:\ptc\mechWildfire_II\bin;;C:\Programme\Microsoft SQL Server\80\Tools\Binn\;C:\Programme\QuickTime\QTSystem\;%JAVA_HOME% Dass ich die JAVA_HOME Variable mit in die PATH Variable nehme?! Fast. Ich würde %JAVA_HOME% auf das Installationsverzeichnis setzen und im Path dann aber %JAVA_HOME%\bin benutzen. (Analog zu %SystemRoot%\system32) Aber dann muss ich einen Weg finden die JAVA_HOME Variable DAUERHAFT zu setzten. Wie weiter vorn schon angedeutet, sollte man dazu einfach setx nehmen, wenn der Link etwas untergegangen ist, hier nochmal direkt: Environment Variablen setzen (SETX.EXE) Ich schieb die Exe standardmäßig eigentlich in den System32-Ordner, aber das ist beliebig, wenn der Pfad der Exe in der Path-Variable liegt, kann man die ja ohne Probleme in Batch-Dateien verwenden. [Editerle] Weils mir grad auffällt: Wenn du das Resource Kit schon im Path hast, sollte da eigentlich auch die setx.exe dabei sein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 15. Oktober 2009 Autor Teilen Geschrieben 15. Oktober 2009 Resource Kit ist nicht auf den Client installiert.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HJST1979 Geschrieben 16. Oktober 2009 Teilen Geschrieben 16. Oktober 2009 Eine Möglichkeit habe ich noch ! Ich würde JAVA immer im selben Verzeichnis installieren ! Beispiel: C:\Windows\JAVA Das heißt wenn es für alle eine neue Version geben soll wird die alte einfach deinstalliert und die neue Version ins selbe Verzeichnis installiert. So wirds zumindest bei uns gemacht für den "normalen" Anwender. Und wir reden hier von mehreren Tausend installationen. Gruß Hans-Jörg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 16. Oktober 2009 Teilen Geschrieben 16. Oktober 2009 Resource Kit ist nicht auf den Client installiert.... Aber es steht im PATH an erster Stelle -> folglich wird es ja installiert sein, wenn dieser für mehrere Rechner gilt. Ansonsten, wie gesagt, setx.exe einfach rausziehen und auf die Rechner setzen. Ich würde JAVA immer im selben Verzeichnis installieren ! Beispiel: C:\Windows\JAVA Das heißt wenn es für alle eine neue Version geben soll wird die alte einfach deinstalliert und die neue Version ins selbe Verzeichnis installiert. Das Problem ist, dass er von Updates sprach. AFAIK geht ein Überinstallieren in den selben Ordner der Updates nicht so einfach. (Erst die VM deinstallieren, neue Komplettinstallation drüberbügeln etc.) Aber ich lass mich gern, eines Besseren belehren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 16. Oktober 2009 Teilen Geschrieben 16. Oktober 2009 Was spricht denn dagegen, das ganze via setx und JAVA_HOME zu lösen. Man muss doch nur einmal per Script (ich denke ein kleines VB Script reicht da), den bestehenden Pfad aus dem Registry Schlüssel entfernen und durch JAVA_HOME ersetzen. D.h.: VB Script manipuliert Registry setx auf die Rechner kopieren JAVA_HOME wird gesetzt Update wird durchgeführt Das lässt sich doch einfach bewerkstelligen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 19. Oktober 2009 Autor Teilen Geschrieben 19. Oktober 2009 Danke an alle für die Hilfe... Ich werde versuchen mir ein kleines Script zu schrieben.... Ich hoffe ich komme mit einfachem Windows-Scripting ans Ziel... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 26. Oktober 2009 Autor Teilen Geschrieben 26. Oktober 2009 Hallo zusammen, gibt es eine Möglichkeit in der Registry unter: HKLM\System\ControlSet001\SessionManager\Enviroment\PATH an diesen Pfad der PATH-Variablen einen EIntrag "nur" anzuhängen? Damit alle Einträge die bereits in der PATH-Variablen gemacht sind nicht überschreiben werden, sondern dass nur ein Pfad angehängt wird. Kennt da Jemand eine Möglichkeit? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 26. Oktober 2009 Teilen Geschrieben 26. Oktober 2009 Ich kenne eine. Set objWSHShell = WScript.CreateObject("WScript.Shell") RegPath = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\" Key = objWSHShell.RegRead(RegPath & "Path") Key = Key & ";C:\neuen\Pfad\hinzufuegen\;" objWSHShell.RegWrite RegPath & "Path", Key, "REG_EXPAND_SZ" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Delgado Geschrieben 26. Oktober 2009 Autor Teilen Geschrieben 26. Oktober 2009 Set wshShell = CreateObject("WScript.Shell") ' Auslesen der bestehenden Pfadvariablen PATH For Each strEnv in Array("SYSTEM") For Each str In wshShell.Environment(strEnv) If InStr(1, str, "PATH=", vbTextCompare)<>0 Then oldPfad = Split(str, "=") oPfad = oldPfad(1) End If Next Next 'Anhängen von C:\Program Files (x86)\Java\jre6\bin an die Pfad Variablen PATH Set wshUEnv = wshShell.Environment("SYSTEM") Pfad = oPfad & ";C:\Program Files (x86)\Java\jre6\bin" & ZielverzeichnisS wshUEnv("PATH") = CStr(Pfad) Danke dir. Ich habe noch eine weiter Frage: So weit so gut - Nun kann ich im PATH etwas anhängen, ist es auch möglich nach gezielten Einträgen (alle Java-Pfad Einträge) im PATH zu suchen und diese aus der PATH-Variable herauszulöschen zu löschen (ohne die ganze PATH-Variable zu löschen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.