Mad*_*uja 89 windows-7 environment-variables windows-server-2008-r2
我正在尝试使用setx命令设置环境变量,如下所示
setx PATH "f:\common tools\git\bin;f:\common tools\python\app;f:\common tools\python\app\scripts;f:\common tools\ruby\bin;f:\masm32\ bin;F:\Borland\BCC55\Bin;%PATH%"
但是,如果值超过 1024 个字符,我会收到以下错误:
警告:正在保存的数据被截断为 1024 个字符。
成功:指定的值已保存。
但是最后的一些路径没有保存在变量中,我猜是由于错误提示的字符限制。
Syn*_*ech 57
最好的办法是直接编辑注册表。
导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment并编辑该Path值(然后重新启动以激活新值)。
但是请注意,虽然您可以输入很长的路径(最多可达最大环境变量长度;2,048或32,768字节,具体取决于源),但如果路径太长,并非所有软件都能够正确读取和处理它。
Rez*_*eza 36
如果您使用的是 windows vista 或更高版本,您可以创建一个symbolic link文件夹。例如:
mklink /d C:\pf "C:\Program Files"
mklink /d C:\pf86 "C:\Program Files (x86)"
Run Code Online (Sandbox Code Playgroud)
将制作一个链接,因此c:\pf将是您的程序文件文件夹。通过使用这个技巧,我从我的路径中删除了 300 个字符。
(我知道它与 setx 无关,但它对于正在搜索克服 1024 个字符限制的人很有用)
Jus*_*ing 24
您可以使用类似于以下内容的 PowerShell 脚本:
$newPath = 'F:\common tools\git\bin;F:\common tools\python\app;F:\common tools\python\app\scripts;F:\common tools\ruby\bin;F:\masm32\bin;F:\Borland\BCC55\Bin'
$oldPath = [Environment]::GetEnvironmentVariable('PATH', 'Machine');
[Environment]::SetEnvironmentVariable('PATH', "$newPath;$oldPath",'Machine');
Run Code Online (Sandbox Code Playgroud)
该Environment.SetEnvironmentVariable()API调用将播出WM_SETTINGCHANGE,所以你不需要重新启动。
这个开源的 SetEnv 命令行工具可以无限制地编辑 PATH 和其他环境变量。它使用动态缓冲区,因此没有像 1024 这样的静态限制。
http://www.codeproject.com/Articles/12153/SetEnv
不过,选择 % 作为前缀来附加到变量可能会更好,因为如果与其他批处理局部变量一起使用,有时会使语法变得困难......
| 归档时间: |
|
| 查看次数: |
96971 次 |
| 最近记录: |