如何从被 SETX 截断为 1024 个字符的 PATH 中恢复

如何从被 SETX 截断为 1024 个字符的 PATH 中恢复

尝试使用 SETX 将 JAVA.exe 添加到 Windows PATH 变量后,我在 Windows 8 上收到错误:

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 的先前值捕获到任何地方。天哪,我真不敢相信 29 年后 Windows 中仍然会发生这种事情。

答案1

PATH 是保存在注册表中

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

如果你有系统还原点,你可以找到相关密钥并恢复

答案2

没有足够的声誉来在这里发表评论,但@kreemoweet 的评论 - 不幸的是,Windows 10(我相信 8/8.1 也是如此)禁用了“最后一次正确的配置”选项以及它曾经能够恢复的相关备份(您所说的 ControlSet###)。此行为可以通过注册表修复重新启用,但除非用户手动执行此操作,否则他们很可能在查看注册表时只会找到一个控制集(实际上是 CurrentControlSet)。因此,这里可能需要进行系统还原。

如果其他人遇到这种情况,重新启用注册表中的 ControlSet### 备份的方法是添加一个注册值:

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

相关内容