当前位置: 首页 > 面试题库 >

从Windows Batch(cmd.exe)中的文件读取环境变量

杜砚
2023-03-14
问题内容

我正在尝试从批处理文件中读取变量,以供以后在批处理脚本(这是Java启动器)中使用。理想情况下,我希望所有平台(Unix,Windows)上的设置文件具有相同的格式,并且也是一个有效的Java属性文件。也就是说,它应如下所示:

setting1=Value1
setting2=Value2
...

是否可以像在Unix shell脚本中一样读取这些值?罐子应该看起来像这样:

READ settingsfile.xy
java -Dsetting1=%setting1% ...

我知道可以使用来实现SET setting1=Value1,但是我真的希望所有平台上的设置都使用相同的文件格式

需要说明的是:我需要在命令行/批处理环境中执行此操作,因为我还需要设置无法在JVM中更改的参数,例如-Xmx或-classpath。


问题答案:

您可以在批处理文件中执行以下操作:

setlocal
FOR /F "tokens=*" %%i in ('type Settings.txt') do SET %%i
java -Dsetting1=%setting1% ...
endlocal

这将读取包含诸如“ SETTING1 = VALUE1”之类的字符串的文本文件,并调用SET将其设置为环境变量。

setlocal / endlocal用于将环境变量的范围限制为批处理文件的执行。

CMD命令处理器实际上是相当强大的,尽管具有相当拜占庭式的语法。



 类似资料:
  • 问题内容: 有没有办法在Node.js代码中读取环境变量? 例如Python的。 问题答案: process.env.ENV_VARIABLE 您要访问的变量的名称在哪里。

  • 在SpringBoot中读取环境变量的最佳方法是什么? 在Java中,我使用了以下方法: 是否可以使用注释来实现?

  • 5.3.1 $%envVarName% 当编译时,$%envVarName% 将会被环境变量 envVarName 替换。

  • 我有一个Jenkins的工作,在那里我执行了一个Groovy脚本。从那个Groovy脚本中,我向另一个应用程序发出POST请求。我的Jenkins服务器和应用程序在不同的机器上。我需要从应用程序的代码中访问Jenkins环境变量。这可能吗? 我尝试使用System.getenv("ENVIRONMUT-VARIABLE-NAME")方法检索环境变量,但返回的结果为null。

  • 在Jenkins中,我试图设置一个动态环境变量。 我使用Scriptler创建了一个Groovy脚本并将结果写入文件。 然后,我使用EnvInject来读取该文件的内容。 Groovy脚本: 设置: 但是,我想要设置的环境变量仍然无法识别: 知道为什么无法识别环境变量吗?

  • 升级到Laravel 5.2后,没有读取我的文件值。我按照升级说明;没有我的配置文件被更改,除了auth.php.他们都在以前的版本,5.1.19正常工作 包含以下值