Jak odzyskać od ŚCIEŻKI skróconej do 1024 znaków przez SETX

12

Wystąpił błąd w systemie Windows 8 po próbie użycia SETX do dodania JAVA.exe do zmiennej PATH systemu Windows:

WARNING: The data being saved is truncated to 1024 characters.

Po ponownym uruchomieniu zauważam, że ŚCIEŻKA jest rzeczywiście znacznie krótsza niż wcześniej. Odtąd przeczytałem, że SETX nie może obsłużyć więcej niż 1024 znaków. Dobrze byłoby to wiedzieć w artykule, który zalecił jego użycie.

Zastanawiam się, czy mój system będzie teraz niestabilny, ponieważ (prawdopodobnie) niektóre katalogi nie pojawiają się już w zmiennej PATH. Koniec łańcucha jest wyraźnie odcięty w środku katalogu (w Pr):

(...) ;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Pr

Czy istnieje jakiś sposób na wycofanie lub w dowolnym miejscu, w którym została przechwycona poprzednia wartość PATH. Człowieku, nie mogę uwierzyć, że takie rzeczy mogą się zdarzyć w systemie Windows po 29 latach.

Doug
źródło
Różni się od tego pytania, ponieważ ten użytkownik jest zainteresowany znalezieniem innego sposobu edycji zmiennej PATH. Zastanawiam się, czy mój system jest uszkodzony i jak mogę się zregenerować. superuser.com/questions/387619/…
Doug
1
Twój system nie będzie niestabilny, ale dowiedz się od innego użytkownika systemu Windows 8 lub strony internetowej, jaka powinna być ścieżka w nowej instalacji systemu Windows 8, i skorzystaj z niego. I w razie potrzeby wyhoduj go. Zawsze wykonuj kopię zapasową ŚCIEŻKI przed użyciem setx. Może w systemie Windows 8 istnieje przywrócenie systemu, które może cofnąć ścieżkę? warto spróbować EDYCJA DODANA - następnym razem, gdy używasz setx, najpierw wykonaj echo% PATH%> afile <- i spróbuj setx na innej zmiennej innej niż PATH. Następnie, gdy jesteś pewien, że masz prawidłową linię setx, po wypróbowaniu jej na TESTPATH, następnie zrób setx na PATH.
barlop
1
Jeśli nie uruchomiłeś się jeszcze raz, możesz przejrzeć kopie zapasowe CurrentControlSet arthe ghee.
Bob
3
@ Bob dobrze, jeśli się nie zrestartował i nadal ma to samo okno cmd otwarte, to po setx zmienna ścieżki wciąż nie jest ustawiona w bieżącym oknie cmd, i możesz po prostu echo% path% W każdym razie, może system przywrócić przywraca ścieżkę?
barlop
1
o stabilności : w zasadzie, aby sam system Windows działał dobrze, potrzebujesz po prostu `% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0`. Cała reszta to oprogramowanie innych firm. nVidia ponownie doda swoje wpisy przy aktualizacji sterownika i działa dobrze nawet bez. Problemy związane ze ścieżką są rzadkie i zwykle pozorne, więc możesz sobie z nimi poradzić indywidualnie. Informacje o rozszerzaniu ścieżki : użyj pathman.exe z zestawu zasobów . Ale pamiętaj o limitach superuser.com/a/387625
LogicDaemon,

Odpowiedzi:

3

ŚCIEŻKA jest zapisywana w rejestrze pod adresem

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Jeśli masz punkty przywracania systemu, możesz znaleźć odpowiedni klucz i go przywrócić .

Sir Adelaide
źródło
2
Zazwyczaj będzie kilka kluczy rejestru „ControlSetXXX”, z których jeden wymieniony jest klucz CurrentControlSet. Nie trzeba żadnych punktów przywracania, aby tylko na nie spojrzeć.
kreemoweet
0

Nie mam wystarczającej reputacji, aby skomentować tutaj, ale komentarz @ kreemoweet - niestety system Windows 10 (i również uważam, że 8 / 8.1) wyłączył opcję „ostatniej znanej dobrej konfiguracji” i powiązane kopie zapasowe, które kiedyś można było przywrócić (ControlSet ###, o którym mówisz). To zachowanie można ponownie włączyć za pomocą poprawki reg, ale jeśli użytkownik nie zrobi tego ręcznie, jest bardzo prawdopodobne, że podczas wyszukiwania w rejestrze znajdzie tylko jeden zestaw kontrolny (którym w rzeczywistości będzie CurrentControlSet). Dlatego przywracanie systemu może być tutaj prawidłowe.

W przypadku, gdy ktoś inny się z tym spotka, sposobem ponownego włączenia kopii zapasowych ControlSet ### w rejestrze jest dodanie wartości reg:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager

Name: BackupCount
Type: DWORD
Value: 1 = store one backup in registry (one "last known good config")
    2 = store two backups in registry (two "last known good configs")

Powyższe umożliwia tworzenie kopii zapasowych ControlSet ###. Następnie, jeśli chcesz również włączyć opcję „ostatniej znanej dobrej konfiguracji” w menu rozruchowym (starszej wersji) (która, jak sądzę, musiałaby zostać ponownie włączona w Win8 / 8.1, aby ta opcja rzeczywiście się pojawiła), trzeba dodać:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood

Name: Enabled
Type: DWORD
Value: 1 = enabled
    0 = disabled
dwillis77
źródło