【发布时间】:2016-12-30 06:34:02
【问题描述】:
实际上我想运行 2 个 bat 脚本,第一个脚本将设置一个系统变量 set NEWPATH="E:/Some",第二个脚本将显示该变量的路径:echo %NEWPATH%。这在第一次不适用于同一台服务器,当我重新启动服务器时将显示路径,否则它不会显示任何内容。那么有人可以帮我吗?
【问题讨论】:
-
查看
setxcommand 以在用户或系统上下文中永久设置环境变量(这是第三种可能的方式,@kostix)... -
是的,它将永久更新,但在重新启动服务器之前无法使用。 @as
-
@aschipfl,谢谢!我不知道这个命令。问题是我不知道用更新的环境块替换当前进程的环境块的任何简单解决方案。好吧,除了直接调用 Win32 API。另一个明显的问题是,在按顺序执行的两个进程之间传递单个键+值组合这种方式是一个严重的过度工程IMO:
-
@aschipfl 因为在 Windows 上,用户和系统环境块存储在注册表中,所以 OP 的服务器可以直接使用 HKCU 中的专用注册表项来实现此目的。我认为这仍然是一个过度工程,但至少规模较小:-)
-
@shagul,顺便问一下,您已经在第一个批处理脚本中使用
setx命令吗? (这可以解释“当我重新启动服务器时,它将显示路径,否则它什么都不会显示”对我来说是一段话——我最初无法理解)。
标签: batch-file go environment-variables windows-scripting