Zmienne środowiskowe nie ładują się podczas uruchamiania

1

Występuje dziwny problem polegający na tym, że moje zmienne środowiskowe nie ładują się poprawnie przy każdym uruchomieniu systemu Windows. Naprawdę trudno było dowiedzieć się, co się dzieje, i zrobiłem to wyłącznie przez szczęście. Pierwotnie zauważyłem problem przy każdym ponownym uruchomieniu lub uruchomieniu i próbie uruchomienia standardowego zestawu aplikacji. W szczególności spróbowałbym uruchomić Eclipse i nie udałoby mu się to uruchomić i zachowywać się tak, jakbym nie miał JDK.

Podczas rozwiązywania tego problemu próbuję powtórzyć moje zmienne środowiskowe (konkretnie Ścieżka) i otrzymam następujące informacje:

C: \ Windows \ System32> echo% PATH%

C: \ Windows \ system32 \ NV;.;

W tym momencie sprawdziłbym moje zmienne środowiskowe i wyglądałyby dobrze. Po chwili zauważyłem, że po przeprowadzeniu tego sprawdzenia zmienne będą się dobrze odbijać:

C: \ Windows \ System32> echo% PATH%

C: \ Program Files ... [Wiele instrukcji] ...; C: \ apache-maven-3.0.4 \ bin

Z tego, co zbieram, wchodzenie w zmienne środowiskowe zmusza je do ponownego załadowania lub odświeżenia. Nie znam sposobu ładowania zmiennych środowiskowych podczas uruchamiania, ale wygląda na to, że ten proces nie działa. To jest mój komputer roboczy i jest wiele skryptów działających w tle, które są uruchamiane podczas uruchamiania, więc podejrzewam, że to może być winowajcą.

Jeśli ktoś ma jakieś pomysły na temat tego, co się tu dzieje, byłbym wdzięczny za opinie, ale przede wszystkim zastanawiam się, czy ktoś wie, jak ręcznie wymusić odświeżenie tych zmiennych podczas uruchamiania? Mały skrypt, który mogę uruchomić przy starcie lub nawet przed kilkoma kluczowymi aplikacjami, aby upewnić się, że zmienne środowiskowe są załadowane, byłby świetny. Z góry dziękuję za wszelkie uwagi!

ggrigery
źródło
Prawdopodobnie możesz użyć setx w pliku wsadowym, aby ustawić ŚCIEŻKĘ tak, jak chcesz.
martineau,

Odpowiedzi:

0

W niektórych zestawach zasobów Windows znajduje się narzędzie wiersza polecenia o nazwie setx, które umożliwia wprowadzanie trwałych zmian w zmiennych środowiskowych zamiast tymczasowych. Można go użyć w pliku wsadowym, aby ustawić PATHzmienną środowiskową na taką, jaka ma być.

martineau
źródło
0

Wydaje mi się, że pamiętam ten problem kilka miesięcy temu z oprogramowaniem, które pobiera informacje o licencji ze zmiennych środowiskowych. Ustawialiśmy zmienne USERS, ale z jakiegoś powodu nie były one konsekwentne. Skończyło się tworzenie nowych zmiennych SYSTEM, (które nie zmieniają się w zależności od bieżącego użytkownika) i od tego czasu nie mieliśmy żadnych problemów.

Lub możesz utworzyć bardzo prosty plik wsadowy i umieścić go w folderze StartUp.

// zarysuj to, zmienne ustawione w oknie poleceń zachowują się tylko w tej instancji okna poleceń

VBscript na ratunek!

Set wshShell = CreateObject( "WScript.Shell" )
Set wshSystemEnv = wshShell.Environment( "SYSTEM" )

' Display the current value
' comment out to remove dialog box
WScript.Echo "MyVariable=" & wshSystemEnv( "MyVariable" )

wshSystemEnv( "MyVariable" ) = "MyNewValue" 
' WScript.Echo "MyVariable=" & wshSystemEnv( "MyVariable" )

' Delete the environment variable
' uncomment to enable
'wshSystemEnv.Remove( "MyVariable" )

Set wshSystemEnv = Nothing
Set wshShell     = Nothing

zapisz do pliku z rozszerzeniem ned jako * .VBS

Lee Harrison
źródło
Dziękuję za odpowiedź. Nie próbowałem tego, ponieważ powyższe rozwiązanie Martineau działało dla mnie. Mogę spróbować to później przetestować, aby potwierdzić, czy to działa.
grgrigery,