1

当我试图回显系统路径变量时,它会显示两次相同的内容。

我的系统路径变量:

C:\oraclexe\app\oracle\product\10.2.0\server\bin;C:\Program Files (x86)\PC Connectivity Solution\;C:\Program Files\Common Files\MicrosoftShared\Windows Live;C:\程序文件 (x86)\CommonFiles\MicrosoftShared\WindowsLive;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Dell \DW WLAN 卡;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Windows Live\Shared;

当我在 cmd echo %Path% 上回显它时,它会显示这个

C:\oracle\app\oracle\product\10.2.0\server\bin;C:\Program Files (x86)\PC Connectivity Solution\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C: \Program Files (x86)\Common Files\Microsoft Shared\WindowsLive;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\; C:\Program Files\Dell\DW WLAN Card;C:\ProgramFiles\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files(x86)\WindowsLive\Shared;C :\oraclexe\app\oracle\product\10.2.0\server\bin;C:\Program Files (x86)\PC ConnectivitySolution\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program文件 (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\System32\WindowsPowerShell\v1.0\;C:\Program Files\Dell\DW WLAN Card;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\WindowsLive\Shared;F: \Java\jdk1.6.0_38\bin\

任何人都可以帮助为什么它两次显示相同的值?这有副作用吗?

PS:我创建了一个本地 Path 变量为 %Path%F:\Java\jdk1.6.0_38\bin\

4

2 回答 2

1

有时在 Windows XP 和 Windows7 之间,用户级 PATH 变量的解释发生了变化。现在它会自动将路径附加到系统定义的路径,而不是像以前那样替换它。

因此,您的本地路径最终成为 %PATH%;%PATH%;F:\Java\jdk1.6.0_36\bin

好消息是它有效——您可以找到所需的文件。坏消息是找到您的 java bin 文件需要更长的时间。

编辑:烦人的消息是你不能再覆盖系统定义的命令。将用户级别 PATH 定义为 mybin;%PATH% 不会产生所需的结果。

于 2013-06-28T19:46:30.677 回答
0

如果您在控制台中执行此操作,您可以创建一个包含以下内容的批处理脚本:

for /F "tokens=2* delims= " %%f IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path ^| findstr /i path') do set OLD_SYSTEM_PATH=%%g
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%OLD_SYSTEM_PATH%;F:\Java\jdk1.6.0_36\bin"

这基本上从注册表中获取路径值并将您的路径添加到它。请注意,如果您在控制台中使用 Set 命令设置路径长度,则路径长度也有大约 1024 个字符的限制,此代码可解决此限制。

于 2013-06-28T19:50:01.140 回答