【发布时间】:2014-08-04 20:35:06
【问题描述】:
【问题讨论】:
【问题讨论】:
处理>1024字符路径时的解决方案:
在我的情况下,其他答案均无效,但使用 pathed 可以解决问题。您可以像这样简单地附加到路径:
pathed /append C:\Path\To\Be\Added /machine
您可以通过运行检查编辑是否正确
pathed
PS:如果您想更改用户的路径,请改用:
pathed /append C:\Path\To\Be\Added /user
和pathed /user 检查它是否正确通过。
PPS:为了能够从终端运行 pathed,您需要将 exe 放在路径上已经存在的目录中(或在路径中添加一个新目录,但是您可能需要打开一个新的实例cmd.exe 以便识别新路径)
【讨论】:
请参考Adding a directory to the PATH environment variable in Windows
append_user_path.cmd
append_system_path.cmd
- 两者都可以正常工作
【讨论】:
如果要在用户级别向 PATH 环境变量添加一些位置,请在命令行上使用以下命令:
setx PATH ^%PATH^%;"C:\Program Files\Something\bin"
为什么会有奇怪的语法? 首先,您不想扩展系统 PATH 变量而是将其保留为符号,否则您将不会参与将来对系统 PATH 变量的添加。因此,您必须用 ^ 引用 % 字符。
如果在命令脚本中使用它,则必须使用双 %% 而不是 ^%。
" 包含一个包含空格的字符串。如果没有空格,可以省略引号。
添加的字符串必须直接跟在后面,没有空格,所以整个字符串形成了 setx 命令的单个参数。
【讨论】:
%PATH% 的一个问题是它包含用户的路径。如果你不介意Powershell,可以运行以下
$p = [Environment]::GetEnvironmentVariable("PATH", [EnvironmentVariableTarget]::Machine);
[Environment]::SetEnvironmentVariable("PATH", $p + ";C:\MyPath", [EnvironmentVariableTarget]::Machine);
【讨论】:
从powershell
setx /M PATH "$($env:path);c:\program files\mynewprogram"
【讨论】:
键入setx /? 以获取基本命令帮助。你会很容易发现:
/M Specifies that the variable should be set in
the system wide (HKEY_LOCAL_MACHINE)
environment. The default is to set the
variable under the HKEY_CURRENT_USER
environment.
您需要从提升的命令提示符处运行它。右键单击cmd 快捷方式并选择Run as Administrator。
例如
setx /M PATH "%PATH%;C:\Something\bin"
注意:
我们可能会破坏当前系统的 PATH 变量。确保在修改它之前备份它的值。
【讨论】:
pathman 可能是比setx 更好的选择,因为它专门用于操纵路径。特别是,使用 setx 会破坏带有嵌入式环境变量引用的路径,而 pathman 不会(据我所知)。
setx 可能会将值截断为 1024 个字符。 (至少这是它在Windows 7 Enterprise x64 SP1 上对我的要求)。