Windows 批处理,仅选择用户变量

2024-01-06

在环境变量中,我有一个用于用户变量和系统变量的 PATH 变量。

在批处理脚本中,为了向用户 PATH 变量附加新的给定路径,我需要选择当前值。不幸的是 %PATH% 返回用户变量和系统变量的组合。

当然,我只想向用户变量添加新的自定义路径值。也没有必要通过系统路径来增强它。这就是为什么我有两个变量。

提前致谢。

编辑:在文档中发现以下语句:

%PATH% 变量设置为系统变量和用户变量,这两个值组合起来给出当前登录用户的 PATH...

Example:

用户变量:

PATH
value: c:\dev

系统变量

PATH
value: c:\Program Files

我想要做的是将值添加到用户变量:c:\tmp,这样最终 PATH 将具有值:c:\dev;c:\tmp

但是,如果打开 cmd 窗口:

echo %PATH%
c:\Program Files;c:\dev

所以 setx 将执行以下操作

setx path "%path%;c:\tmp"

打开新的cmd

echo %PATH%
c:\Program Files;c:\dev;c:\tmp

这是错误的,因为我只需要 c:\dev;c:\tmp

我希望这次我说得更清楚了。


你如何修改变量?

只有一个环境变量PATH,这样您就可以继续更改它。这些更改是暂时的(并且对于您的进程及其子进程而言是本地的)。

注册表中有两个(实际上更多)持久位置,当创建进程时,环境变量将从这些位置初始化。您可以使用修改它们reg http://technet.microsoft.com/en-us/library/bb490984.aspx公用事业。没有歧义,因为它们是分开的:

  • HKEY_CURRENT_USER\环境
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

您可能必须重新登录才能使注册表中的更改生效(我不记得是否有编程方式来通知资源管理器这些设置已更改)。另请注意,默认情况下,子进程继承其父进程的环境(除非父进程采取特殊措施否则),因此例如如果你启动一个cmd窗口,然后通过系统设置对话框修改环境,应用程序从该窗口启动cmd不会看到变化。

[UPD]您可以使用以下命令从注册表中获取特定于用户的环境变量的值reg公用事业:

reg query HKCU\Environment /v PATH

尽管您必须过滤其输出以获得实际值,因为它会输出一些无用的文本。这是一个咒语示例:

for /f "usebackq tokens=2,*" %A in (`reg query HKCU\Environment /v PATH`) do set value=%B

它将结果存储在环境变量中value。记得加倍%在批处理文件中使用它时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 批处理,仅选择用户变量 的相关文章

  • 如何使用命令行压缩文件?

    我想使用批处理文件命令 Windows XP 批处理文件 压缩目录 例如 如果我想解压缩一个文件意味着我可以使用jar xf file zip java bat 文件命令 就像我想要一个命令行批处理来压缩目录一样 如果您使用的是 Ubunt
  • Vim 在 Mingw 上表现异常

    我在 MinGW 4 6 2 上的 Vim 表现得很奇怪 例如 在插入模式下按 Backspace 会删除字符 但我必须用箭头键移动光标才能删除的字符消失 而且它也会使我退出插入模式 另一个例子 按 Del 删除字符有时会生成奇怪的字符 例
  • 需要 TensorFlow 依赖项。如何在 Windows 上运行 TensorFlow

    我有兴趣让 TensorFlow 在 Windows 上运行 但目前我意识到这是不可能的 因为某些依赖项无法在 Windows 上使用 例如巴泽尔 之所以出现这种需求 是因为据我目前了解 从 TensorFlow 访问 GPU 的唯一方法是
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • 如何将 GIT 调用的输出获取到批处理脚本中的变量中?

    我有一个 git 命令来获取当前存储库的最新 SHA 如下所示 git log pretty format H n 1 我有一个 Windows 批处理脚本 我想按如下方式使用它 SET CURRENT SHA 但我不知道如何将从 git
  • 更改 Wi-Fi 配置文件的密码

    在我志愿服务的长期护理医院中 每个月的第一天 访客 Wi Fi 连接的密码都会更改 这给工作人员带来了大量的工作 也给患者带来了很多挫败感 其中许多人的行动能力非常有限 是的 真正的解决方案是让 IT 团队保留相同的密码 但这不会发生 大多
  • NodeJS Express Windows 最大连接数设置

    在哪里设置nodejs的最大连接数 用于使用express get 在 Windows 10 中 与linux中的最大文件 描述符 设置有关吗 有该设置的 Windows 版本吗 最好是在nodejs中进行设置 以便在迁移到unix时兼容
  • teracopy 如何替换默认的 Windows 副本

    我问了这个问题Windows 文件复制内部结构 动态加密 https stackoverflow com questions 24220382 windows file copy internals on the fly encryptio
  • 常见的 Windows 编译器上有哪些 std::locale 名称可用?

    该标准对于什么构成有效的语言环境名称几乎没有提及 只有传递无效的区域设置名称才会导致std runtime error 哪些语言环境名称可用于常见的 Windows 编译器 例如 MSVC MinGW 和 ICC 好吧 C 和 C 语言环境
  • 使用批处理文件创建 exe 的快捷方式

    我知道这样的主题已经存在 但我不想使用 VB 脚本 我希望你能在 DOS 中使用命令行创建快捷方式 请发布一些很棒的例子 Thanks AA 如果不调用外部程序 则无法在 bat 文件中创建快捷方式 然而 自 Win2k 以来的每个版本的
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • 在有或没有 UNICODE 支持的情况下,如何在我的程序中使用 _stprintf?

    微软的 定义 stprintf as swprintf if UNICODE被定义 并且sprintf如果不 但这些函数采用不同的参数 在swprintf 第二个参数是缓冲区大小 但是sprintf没有这个 有人偷懒了吗 如果是这样 这就是
  • 获取自动热键中的可用屏幕区域

    我正在尝试编写一些简单的 AutoHotkey 脚本来移动窗口 但在获取正确的屏幕尺寸值时遇到问题 我试图获取屏幕上可用区域的大小 通常是全屏分辨率减去任务栏 也许还有任何其他停靠窗口 如 Vista 中的侧边栏 我发现的获取屏幕宽度的方法
  • ntdll!kifastsystemcallret

    我的程序在执行结束时崩溃 甚至看不到堆栈展开信息 我只能看到这个 ntdll kifastsystemcallret 有人能提供一些线索吗 KiFastSystemCallRet 意味着线程处于系统调用中 x86 NT 系统调用调度的一个不
  • 使用管理员权限打开cmd(Windows 10)

    我有自己的 python 脚本来管理我的计算机上的 IP 地址 它主要在命令行 Windows 10 中执行netsh命令 您必须具有管理员权限 这是我自己的计算机 我是管理员 运行脚本时我已经使用管理员类型的用户 Adrian 登录 我无
  • 将 value 转换为 bool 的魔法

    今天我意识到将值转换为 bool 是一种魔法 int value 0x100 unsigned char uc static cast
  • TRACKER:错误TRK0005:无法找到:“CL.exe”。该系统找不到指定的文件

    我尝试在 Windows 8 上的 Node js 项目中执行以下命令 npm 安装 电子邮件受保护 cdn cgi l email protection 但我收到一个错误 我不知道如何处理 TRACKER 错误TRK0005 无法找到 C
  • 供所有 Win32 程序员在 Windows Aero Glass(DWM、GDI、GDI+)上绘图的文档和 API 示例

    我正在寻找良好的资源来学习使用 Win32 GDI API 或任何替代它的内容 以便使用 Win32 API 直接在玻璃窗体上进行绘制和绘制 当我使用 Delphi 时 我将其标记为 Delphi 或 Visual C 您能找到的任何代码示
  • 将文件夹中的每个文件移动到以该文件命名的自己的文件夹中的批处理脚本?

    所以如果我有 folder file1 txt folder file2 jpg folder file3 py 我想创建 folder file1 file1 txt folder file2 file2 jpg folder file3
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp

随机推荐

  • 当有预定义高度时如何将文本放置在底部!

    这应该是非常微不足道的事情 但事实并非如此 我有一个预定义的锚点高度 我想将文本放置在底部 li a class my text My Text a li 我使用了以下 CSS 但不起作用 文本仍然显示在顶部 a my text backg
  • 在scale_y_log10变换后,背景填充(通过geom_rect)被删除

    我想向使用分组数据 因子 x 轴 和对数刻度 y 轴创建的绘图添加背景填充 添加对数刻度后 背景填充将被删除 这是一个错误 还是我做错了什么 可重现的示例数据 我将使用mtcars数据 但随着cyl变量作为因子 这是模仿我的数据的最简单的数
  • 管理用户项目权限

    我刚刚创建了一个 Visual Studio Online 帐户并添加了一个新用户 如何管理该用户的项目权限 当我以管理员身份登录时 我浏览了每个可用页面 但找不到任何内容 我唯一能做的就是将用户添加为新项目的成员 添加了新用户 添加用户作
  • Maven 不同分支版本控制的最佳实践 [开发、质量保证/预发布]

    我有几个在不同分支上开发和发布的项目 即发展 and release 这个过程运行得很好 但不幸的是它有一些缺点 我一直想知道是否有更好的版本控制方案适用于我的情况 主要开发发生在开发分支上 即 Subversiontrunk但这并不重要
  • 如何引用同名的不同程序集?

    我有 2 个具有相同名称的不同程序集 需要添加到我的项目中 当我尝试将两个引用添加到项目时 Visual Studio 告诉我该程序集已被引用 因为已经存在同名的程序集 我尝试重命名其中一个文件 我可以添加两个引用 但是当从重命名的程序集访
  • 如何使用上一个命令的参数?

    I know that Esc gives you the last argument of the last command 但我对最后一个命令的第一个参数感兴趣 有按键绑定可以做到这一点吗 在同一行中 是否有一种通用方法可以从最后一个命
  • 命名空间“AuntieDot”中不存在类型或命名空间名称“Core”

    我有 4 个 PCL 它们都针对相同的框架 点阿姨 阿姨Dot 身份验证 阿姨点 核心 阿姨点模型 但由于某种原因 在 AuntieDot Authentication 命名空间中使用 AuntieDot Core Helpers 尽管 A
  • 如何从页面左右滑动模态窗口

    我希望隐藏两个模式窗口 并将它们切换为从左侧滑入 另一个从右侧滑入 然而 在我创建的小提琴中 左侧和右侧模态窗口与页面的左侧和右侧正确对齐 左侧模态从右侧滑入 而不是从左边距 滑出 在这里小提琴 https jsfiddle net Big
  • 如何在python中获取sqlsoup中模式的列名?

    如何使用Python中的SQLSOUP从模式 表中获取字典中的列名和类型 使用MySQLDB 我可以创建游标并使用cursor description sqlsoup 有类似的东西吗 根据文档 https sqlalchemy readth
  • 您可以更改 GitLab 管道中的代码吗?

    GitLab CI CD 管道是否可以提交代码更改 我想运行一个使用的阶段black https github com psf black每当我推动工作时自动格式化我的代码 gitlab ci yml image python 3 6 st
  • 有没有办法自动避免进入 Visual Studio 中的某些函数?

    我知道 仅启用我的代码 调试选项 但这仅适用于托管代码 我正在寻找一种无需单步执行函数调用的方法 例如 STL 字符串转换运算符 因为函数参数之一中存在从 char 到字符串的隐式转换 我找到了这个博客条目 http blogs msdn
  • 远程服务器上的 Django 教程:如何在我的浏览器中查看?

    我正在开始学习 Django 教程 但遇到了障碍 在我常用的域上创建了示例 mysite 后 我希望能够在我的浏览器中显示它 该教程向我指出http 127 0 0 1 8000 http 127 0 0 1 8000 但是 这是行不通的
  • 如何将 Shell 变量值访问到 Groovy 管道脚本中

    现在我是 Shell Jenkins Groovy pipeline 的新手 我的要求是我正在将文件文本读取到 shell 脚本下的变量中 并且我需要将该变量值从 shell 脚本中传递出来并在 Groovy 脚本中使用 这是我的代码 st
  • 如何在android中创建可变数量的textview

    希望这不是一个坏问题 但是我已经通过 S O 进行了搜索 并且一直没能找到答案 我正在创建一个 Android 应用程序 它本质上是一个闹钟 我希望主要活动显示已创建的所有警报以及有关警报的一些信息 我的问题是如何根据已创建的警报数量创建给
  • TortoiseSVN合并分支到主干

    我知道这个问题已经被问过好几次了 所以我很抱歉再次问这个问题 但我只是想确保我理解不同合并之间的区别 我是这个项目的唯一开发人员 所以我不担心重写其他人的工作 我创建了这个项目的一个分支 因为我即将添加一些新功能 并且如果我需要修复当前代码
  • 用毫秒获取文件的最后修改日期?

    我正在尝试从文件夹中获取某些文件的日期和时间 上次修改 我设法获取日期和小时 分钟 秒 但无法获取毫秒 我已经尝试以所有可能的方式格式化该列 我只得到0毫秒 到目前为止我的代码是 用户选择一个文件夹 该代码在 A 列中显示找到的所有文件名
  • Socket.IO - 无法在 Google Chrome 中加载 XMLHttpRequest

    我试图从在 Chrome 19 0 1048 46 中工作的 socket io 主页获取第一个示例 但出现错误 XMLHttpRequest 无法加载 http localhost 8080 socket io 1 t 133715619
  • 函数 driver.switchTo.frame() 在 Selenium 中不起作用

    当我尝试在 Python 中使用 Selenium 中的 Webdriver 切换到网页上的框架时 它向我显示错误 请在下面找到我的代码 driver switchTo frame frame AttributeError WebDrive
  • Android 原生代码分析

    我正在尝试分析本机 Android 代码 但我得到了 出现以下错误 我正在 Linux 机器上运行代码 tracedmdump 配置文件后处理 痕迹 静态基本块 64525 动态 基本块 87073132 静态指令 412004 动态 说明
  • Windows 批处理,仅选择用户变量

    在环境变量中 我有一个用于用户变量和系统变量的 PATH 变量 在批处理脚本中 为了向用户 PATH 变量附加新的给定路径 我需要选择当前值 不幸的是 PATH 返回用户变量和系统变量的组合 当然 我只想向用户变量添加新的自定义路径值 也没