在Windows 8中更改环境变量的更简单方法?[重复]


27

可能重复:
什么是PATH和其他环境变量,如何设置或使用它们?

我知道我可以通过以下方式在Windows 8中编辑环境变量

Start -> All Apps -> Control panel -> System -> 
    Advanced System Settings -> Advanced -> Environment variables.

但是说实话,这很复杂。

有没有更简单的方法来更改Windows 8中的环境变量?

例如,如果我只想将新文件夹追加到PATH,那么完成所有这些步骤确实很烦人。UI也很烂,因为使用小文本输入来编辑长变量值确实很痛苦。

要求1:我需要更改保存下来(例如,当我set在控制台中使用时,关闭控制台后所做的更改会丢失)

要求2:我更喜欢不涉及安装额外软件的解决方案,因为这是每次配置新Windows框时都会遇到的问题。


关于这个主题的好帖子:windows-commandline.com/set-path-command-line
Royi

Answers:


32

您是否探索过setsetx命令?有了它们,您可以设置一个持久变量。此外,该值将立即应用,而不是在下次登录后应用。

Windows SET命令示例

打印PATH环境变量:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

使用set命令设置PATH变量

C:\Users\Charity>set PATH=%PATH%;C:\epicpath
C:\Users\Charity>

上面的命令仅适用于当前窗口,并且在关闭cmd窗口时更改将丢失。

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\epicpath

Windows SETX命令示例

打印PATH环境变量:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

使用setx设置环境变量:

C:\Users\Charity>setx PATH "%PATH%;C:\zombiepoke"
SUCCESS: Specified value was saved.

关闭并重新打开cmd终端,然后运行:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\zombiepoke

您必须小心双引号。如果让引号进入您的path变量,则可能会破坏某些内容。但是,它们对于指定原始%PATH%的附录是必需的。


1
谢谢你的提示!我尝试过,setx PATH=%PATH%;;C:\test但是语法错误:(
jsalonen 2012年

2
使用setx时没有=符号。做setx /?
EBGreen 2012年

4
没有args“ setx”仅在用户上下文中设置变量。要在系统上下文中进行设置,请使用“ setx / M”。不知道这一点可能会使您感到困惑,因为“ echo%PATH%”将显示串联的系统和用户值。
Vituel 2014年

注意,进行此更改后,必须重新启动外壳程序才能生效。
道格

set pathecho %PATH%set pathPATHEXT
记号


4

我在Powershell中更改它们。例如,要将文件夹添加到PATH变量,请打开powershell然后:

$newPath = $env:Path + ';C:\Temp'
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

这将改变所有用户。要仅针对运行命令的用户进行更改,请将最后一个参数更改为“ User”。或者只是在此会话中临时更改它:

$env:Path += ';C:\temp'

大!在命令提示符下如何执行$ env:Path +'; C:\ Temp'的连接?这里的Set&Setx解决方案说明了如何在命令提示符下设置整个路径,但是没有一个说明如何将某些内容附加到现有路径上。
johny为什么

这是在命令提示符处将某些内容附加到现有路径的方法。/ M用于更改SYSTEM变量,而不是USER变量。因为“我的文件夹”中包含空格,所以使用了引号:setx PATH“%PATH%; C:\ My Folder” / M
johny为什么

使用命令提示符的唯一问题是255个字符的限制,并且系统PATH可能会超过该限制(特别是如果您要附加更多目录)。因此,Powershell是必经之路(我可能错了,但是我相信Powershell没有字符数限制)。
johny为什么

3

在命令行上非常简单:

set MyVar=HelloWorld

(要进入命令行,请cmd从开始屏幕>中键入。)

要查看变量:

echo %MyVar%

使用setx永久设置一个变量。语法略有不同。尝试在这里查看,或者那里有很多其他网站可以告诉您如何使用它。


是的,谢谢,我已经知道了,但是问题是,如果您以这种方式进行更改,这些更改就不会持久-即,当我关闭并重新打开命令行时,变量将恢复为默认值。更新了我的问题以反映这一点-抱歉。
jsalonen 2012年

你知道我能做得到的set吗?
jsalonen 2012年

1
SETX是永久的更改
EBGreen

有没有一种方法可以设置变量直到下次重启?否则,如果我使用另一个程序中的set(比方说来自Python或MATLAB的OS命令),那么只要该程序的会话处于打开状态,它就会成立吗?
罗伊
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.