首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用setx分配空系统变量

使用setx分配空系统变量
EN

Stack Overflow用户
提问于 2016-08-09 03:20:23
回答 3查看 4.9K关注 0票数 5

我需要一个系统变量,并将一个空字符串值赋给它。我试过了

代码语言:javascript
复制
setx samplepassword ""

但是在echo %samplepassword%上,应该是空字符串的是%samplepassword%。现在我在文档里找到了这个

"“(空引号)的设置值将显示为删除变量--它不会由SET显示,但变量名将保留在注册表中。

http://ss64.com/nt/setx.html

如何使用setx分配空系统变量?

更新:我已经通过Windows:Control Panel | System | Advanced | Environment Variables检查了环境变量,并且看到DB_PASSWORD确实是用一个空字符串值初始化的。但是为什么执行echo %samplepassword%会给我上面的输出呢?准确地说,我打开了一个cmd的新实例。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-23 08:13:10

我觉得你在这里有个误解。无法将“空字符串”分配给环境(批处理)变量。命令集"samplepassword=“删除变量,因此回显"%samplepassword%”“只显示”。您不需要使用setx命令,也不需要setx可以修改此行为。-8月9日4:39 Aacini

TL;DR:从技术上讲,不可能在环境中创建一个空变量。- https://stackoverflow.com/users/778560/aacini

票数 4
EN

Stack Overflow用户

发布于 2016-08-09 13:00:36

从技术上讲,您可以创建一个空的环境变量,但不能使用setx

以管理员的身份运行

代码语言:javascript
复制
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment"  /v TESTENV /d ""

添加了注册表项:

它甚至显示在环境变量系统面板中。

但在调用set时不在列表中

因此,即使这是可能的,它也是相当无用的。然而,如果env的话,它可能会欺骗一些程序测试。变量通过检查注册表项是否存在而存在。因此,它甚至可能适得其反,而且会造成混乱。

票数 5
EN

Stack Overflow用户

发布于 2021-12-20 08:38:44

我也有同样的问题,得到一个文件名,无论有没有后缀。您可以使用字符串前缀和字符串提取来解决这个问题(参见here)。

  • 不是空字符串: 设置COUNT=two设置SUFFIX=?s回波%计数%事物%后缀:~1% 给出two things
  • 空串 设置COUNT=one集SUFFIX=?回声%计数%事物%后缀:~1% 给出one thing

使用%SUFFIX:~1%,您可以取消字符串前缀(在本例中为?),并获取字符串的其余部分。剩下的可以是空的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38841499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档