如何在Windows 10中将文件夹添加到`Path`环境变量(带截图)

Mat*_*Pag 12 windows path

一般来说,在StackOverflow和网络上,有关如何将特定文件夹添加到用户的Windows 10 Path环境变量的过时指南.

我认为对于具有分步说明和屏幕截图的新开发人员来说,完整的指南可能非常有用,可以帮助他们从命令提示符执行实用程序而无需完整路径,从而简化了操作.

Mat*_*Pag 24

对于带领下,我们要添加一个名为为例工具mytool.exe,位于C:\Users\NewFolderInPath\mytool.exe,使每次我想要执行的mytool公用事业我没有指定的完整路径.

我用这个作为一个例子,你可以像这里位于JDK bin目录更现实的替换文件夹C:\Program Files\Java\{JDK_VERSION}\bin来执行javac,keytool你想要或其他.

第1步 - 单击Windows图标

在此输入图像描述

第2步 - 单击Settings图标

在此输入图像描述

第3步 - 点击System

在此输入图像描述

第4步 - 点击About

在此输入图像描述

第5步 - 点击System info

在此输入图像描述

第6步 - 点击Advanced system settings

在此输入图像描述

第7步 - 点击Environment variables...

在此输入图像描述

步骤8 - 选择Path行,然后单击Edit

在此输入图像描述

步骤9 - 单击New,然后单击Browse,然后在下一个将打开的面板中,您需要在中选择所需的文件夹Path.对于本指南的初始前提,我将添加该文件夹C:\Users\NewFolderInPath

在此输入图像描述

步骤10 - 单击OK并单击OK您将遇到的每个按钮以关闭每个以前的窗口.

在此输入图像描述

步骤11 - 打开a command prompt (cmd),现在您可以执行实用程序而无需指定完整路径.

在此输入图像描述

注意:对于每个问题,请在下面留下评论,我会尽快回答.祝你好运,快乐编码:)

  • 提示 - 只需在开始菜单中输入“env” - 选择“编辑环境变量”顶部项目即可跳过这些步骤的一半 (10认同)
  • 除了这个演练之外,这个视频也很有帮助 - https://www.youtube.com/watch?v=extCL1UU5wk 以及这个 https://www.youtube.com/watch?v=gBHOeI5QB8M 在理解什么测试命令方面也很有帮助尝试并在您关闭命令提示符并重新打开它之前它不会工作(看起来我现在正在运行 keytool :) (3认同)
  • 如果您在开始菜单中输入“环境”,它还会为您提供是否编辑系统当前用户的变量的选项。上面的说明需要管理员权限,所以对我来说最终编辑的是管理员帐户的路径,而不是我的常规用户帐户(我公司的 IT 部门是虐待狂,所以我有多个帐户)。 (2认同)

Hac*_*ash 16

DOS——历史的答案

对于较旧的系统,这是完成的方式,如果您正在使用某种风格的 Dos,这是最简单的答案:

要在新行上打印 Windows PATH 变量的每个条目,请执行:

C:\> echo %PATH:;=&echo.%

为当前会话设置 Windows PATH 变量:

C:\> set PATH=%PATH%;C:\path\to\directory\

永久设置 Windows 路径

以管理员身份运行:setx 命令仅从 Windows 7 开始可用,并且需要提升的命令提示符。

将目录永久添加到用户 PATH 变量中:

C:\> setx path "%PATH%;C:\path\to\directory\"

将目录永久添加到系统 PATH 变量(对于所有用户):

C:\> setx /M path "%PATH%;C:\path\to\directory\"

PowerShell - 避免现代系统出现问题

在现代 Windows 上,您可以使用更现代的工具来避免使用 %PATH% 变量的现代实现所带来的一些陷阱。

以前的用户设置与系统设置现在称为用户设置与机器设置。他们是一样的。任何人都可以修改用户设置,并且只会影响他们自己的环境。修改计算机级别设置需要管理员权限,因为它们适用于所有用户。

要在新行上打印 Windows PATH 变量的每个条目,请执行:

[Environment]::GetEnvironmentVariable("PATH", "User").Split(";")

[Environment]::GetEnvironmentVariable("PATH", "Machine").Split(";")

设置 Windows PATH 避免 setx 方法的陷阱

我们要避免的两个主要问题是 1024 个字符限制和重复条目。使用现代SetEnvironmentVariable将避免 1024 个字符的限制,因此我们可以做一件简单的事情:

function Add-Path-User($newPath) {
    $Path = [Environment]::GetEnvironmentVariable("PATH", "User") + [IO.Path]::PathSeparator + $newPath
    [Environment]::SetEnvironmentVariable( "Path", $Path, "User" )
}

function Add-Path-Machine($newPath) {
    $Path = [Environment]::GetEnvironmentVariable("PATH", "Machine") + [IO.Path]::PathSeparator + $newPath
    [Environment]::SetEnvironmentVariable( "Path", $Path, "Machine" )
}
Run Code Online (Sandbox Code Playgroud)

但如果你想避免重复,你需要更多的参与:

Function Set-PathVariable {
    param (
        [string]$AddPath,
        [ValidateSet('Process', 'User', 'Machine')]
        [string]$Scope = 'Process'
    )

    $regexPaths = @()
    if ($PSBoundParameters.Keys -contains 'AddPath') {
        $regexPaths += [regex]::Escape($AddPath)
    }
    
    $arrPath = [System.Environment]::GetEnvironmentVariable('PATH', $Scope).Split([IO.Path]::PathSeparator)
    foreach ($path in $regexPaths) {
        $arrPath = $arrPath | Where-Object { $_ -notMatch "^$path\\?$" }
    }

    $value = ($arrPath + $addPath).Join([IO.Path]::PathSeparator)
    [System.Environment]::SetEnvironmentVariable('PATH', $value, $Scope)
}
Run Code Online (Sandbox Code Playgroud)


Nic*_*sen 7

除了@MatPag 的出色回答之外,您还可以通过单击窗口图标(左下角)并开始输入“环境”来跳过这些步骤中的前六个步骤,您甚至可以在输入该词之前看到一个选项说:“编辑系统环境变量”。

然后按照@MatPag 给出的其余步骤进行操作