从Windowsbatch file读取环境variables(cmd.exe)【JAVA教程】

!
也想出现在这里? 联系我们
信息

从Windowsbatch file读取环境variables(cmd.exe),第1张

概述从Windowsbatch file读取环境variables(cmd.exe)

我试图从batch file中读取variables,以便以后在批处理脚本中使用,这是一个Java启动程序。 理想情况下,我希望在所有平台(Unix,windows)上具有相同的设置文件格式,并且也是一个有效的Java属性文件。 也就是说,它应该是这样的:

setting1=Value1 setting2=Value2 …

是否有可能像在Unix shell脚本中那样读取这些值? 这个应该看起来像这样:

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

我知道这可能是SET setting1=Value1 ,但我真的宁愿所有平台上的设置相同的文件格式。

澄清:我需要在命令行/批处理环境中执行此 *** 作,因为我还需要设置JVM中不能更改的参数,如-Xmx或-classpath。

将Unix ImageMagick脚本转换为windowsbatch file

需要删除空格分隔string中特定位置的特定引号,同时保留其他引号

下载Wget以外的文件的命令

windows命令行使用目录和exe参数

#!/ usr / bin / …在文件开头是什么意思?

将grep正则Expression式多行search的匹配结果限制为一个

在filezilla客户端中更改用户

意想不到的EOF而寻找匹配`“\’

什么是在linux上创build文件的命令?

覆盖windows cmd内部命令

你可以在批处理文件中做到这一点,如下所示:

setlocal FOR /F \”tokens=*\” %%i in (\’type Settings.txt\’) do SET %%i java -Dsetting1=%setting1% … endlocal

它读取一个包含“SETTING1 = VALUE1”字符串的文本文件,并调用SET将它们设置为环境变量。

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

CMD命令处理器实际上是相当强大的,虽然有一个相当的拜占庭语法。

您可以将属性文件作为参数传递给Java程序(稍后可能会启动主程序)。 然后受益于多平台范式。

只从属性文件(提前知道的)中导入特定的变量可能是明智的,在这种情况下,我推荐使用如下的函数:

:parsePropertIEsfile set PROPS_file=%1 shift :propLoop if \”%1\”==\”\” goto:eof FOR /F \”tokens=*\” %%i in (\’type %PROPS_file% ^| findStr.exe \”%1=\”\’) do SET %%i shift GOTO propLoop goto:eof

这将被call:parsePropertIEsfile props.propertIEs setting1 setting2变量setting1和setting2

您也可以从Java程序中访问OS的环境变量:

import java.util.Map; public class EnvMap { public static voID main (String[] args) { Map<String,String> env = System.getenv(); for (String envname : env.keySet()) { System.out.format(\”%s=%s%n\”,envname,env.get(envname)); } } }

总结

以上是内存溢出为你收集整理的从Windowsbatch file读取环境variables(cmd.exe)全部内容,希望文章能够帮你解决从Windowsbatch file读取环境variables(cmd.exe)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞117 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容