Как восстановиться после усечения PATH до 1024 символов с помощью SETX

12

Я получил ошибку в Windows 8 после попытки использовать SETX для добавления JAVA.exe в переменную PATH Windows:

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

После перезагрузки замечаю, что PATH действительно намного короче, чем раньше. С тех пор я прочитал, что SETX не может обрабатывать более 1024 символов. Это было бы хорошо узнать в статье, в которой рекомендуется использовать его.

Мне интересно, будет ли моя система работать нестабильно, поскольку (предположительно) некоторые из каталогов больше не отображаются в переменной PATH. Конец строки явно обрезан в середине директории (в Pr):

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

Есть ли способ откатиться или куда-нибудь, чтобы было зафиксировано предыдущее значение PATH. Чувак, я не могу поверить, что подобные вещи все еще могут происходить в Windows после 29 лет.

Doug
источник
В отличие от этого вопроса, потому что этот пользователь просто заинтересован в поиске другого способа редактирования переменной PATH. Мне интересно, находится ли моя система в поврежденном состоянии и как я могу ее восстановить. superuser.com/questions/387619/…
Дуг
1
Ваша система не будет нестабильной, но узнайте у другого пользователя Windows 8 или веб-страницы, какой путь должен быть в новой установке Windows 8, и используйте его. И вырасти это при необходимости. Всегда делайте резервную копию вашего PATH перед использованием setx. Может быть, есть восстановление системы, которое вы можете сделать в Windows 8, которое может откатить путь назад? Стоит попробовать EDIT ADDED - в следующий раз, когда вы используете setx, сначала выполните echo% PATH%> afile <- и попробуйте setx для какой-то другой переменной, а не PATH. Затем, когда вы уверены, что у вас правильная строка setx, после попытки ее использования на TESTPATH, выполните setx на PATH.
Бароп
1
Если вы еще не перезагружались во второй раз, вы можете посмотреть текущие резервные копии ghee CurrentControlSet.
Боб
3
@Bob хорошо, если кто-то еще не перезапустился и все еще имеет то же самое открытое окно cmd, то после setx переменная пути все еще не установлена ​​в текущем окне cmd, и вы можете просто повторить% path% В любом случае, возможно, система восстановить восстанавливает путь?
Бароп
1
о стабильности : в основном, чтобы сама Windows работала нормально, вам просто нужно `% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0`. Все остальное стороннее программное обеспечение. nVidia повторно добавит свои записи при обновлении драйвера, и это работает хорошо даже без. Проблемы, связанные с путями, редки и обычно очевидны, так что вы можете просто решать их в каждом конкретном случае. О расширении пути : используйте pathman.exe из набора ресурсов . Но имейте в виду ограничения superuser.com/a/387625
LogicDaemon

Ответы:

3

PATH сохраняется в реестре на

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

Если у вас есть точки восстановления системы, вы можете найти соответствующий ключ и восстановить его .

Сэр Аделаида
источник
2
Обычно будет несколько разделов реестра «ControlSetXXX», одним из которых является упомянутый ключ CurrentControlSet. Не нужно никаких точек восстановления, чтобы просто взглянуть на них.
kreemoweet
0

У меня недостаточно репутации, чтобы комментировать, но комментарий @ kreemoweet - к сожалению, в Windows 10 (и я верю также в 8 / 8.1) отключена опция «последняя известная хорошая конфигурация» и связанные резервные копии, которые она могла восстановить (ControlSet ###, о котором вы говорите). Это поведение может быть повторно включено через reg fix, но если пользователь не сделал этого вручную, очень вероятно, что при поиске в реестре он найдет только один набор элементов управления (который на самом деле будет CurrentControlSet). Таким образом, восстановление системы может быть в порядке здесь.

В случае, если кто-то еще сталкивается с этим, способ повторно включить резервные копии ControlSet ### в реестре состоит в добавлении значения 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")

Вышесказанное включает резервное копирование ControlSet ###. Затем, если вы также хотите включить опцию «последняя известная исправная конфигурация» в (старом) загрузочном меню (которую также нужно будет повторно включить в Win8 / 8.1, я полагаю, чтобы эта опция действительно появилась), вы нужно добавить:

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

Name: Enabled
Type: DWORD
Value: 1 = enabled
    0 = disabled
dwillis77
источник