我正在写一个batch file从文件读取path,并将其设置为环境variables。 这个batch file将被许多其他batch file使用(调用)来获取variables。 在写batch file的时候,我遇到了一个问题,就是variables扩展,所以我用SETLOCAL ENABLEDELAYEDEXPANSION来解决这个问题。 但是这样做使用它的其他batch file不能获取variables设置。
以下是批处理脚本,
getvariables.bat @echo off SETLOCAL ENABLEDELAYEDEXPANSION if EXIST "test.dat" ( for /F "tokens=*" %%I in (test.dat) do set %%I echo setting JAVA_HOME to :: !JAVA_HOME! echo setting JAVA to !JAVA! )
在我的另一个batch file中,我正在使用上面的batach文件来获取variables集
another.bat call getvariables.dat echo "%JAVA%"
但是回显是打印“”,它没有设置。 如果这是因为setlocal ,我怎么能克服呢? 我还需要setlocal来延迟扩展,并在执行时发生。 任何解决这个问题? 请帮我一下
Oracle环境variables“ORACLE_UNQname”
创build一个别名
无法更改java.io.tmpdir
简单的unix命令,什么是{}和; 对于
在后台使用&PHP不能正常工作
在远程机器上执行多个命令
在每个目录中查找最新的版本文件
来自C#代码的CMD命令不起作用(windows)
如何将一个subprocess.call的结果打印到python脚本中的一个文件中
如何在linux中删除名为“?”的文件?
要将多个全局变量设置为局部变量的值,请使用以下技巧:
endlocal & ( set "globalvar1=%localvar1%" set "globalvar2=%localvar2%" set "globalvar3=%localvar3%" )
()块中的变量在执行endlocal之前展开。
这个endlocal & set str=value会创造奇迹。
这真的取决于你在做什么 – 你是否已经发布了完整的脚本。
首先,你在%test.dat有%不平衡
接下来,将批处理文件命名为.bat而不是.dat是个好主意
接下来,如果这个getvariables.bat的唯一目的是设置变量文件的行(test.dat)
JAVA_HOME=c:whereverjavahomeis JAVA=c:whereverjavais
然后
@echo off if EXIST "test.dat" ( for /F "tokens=*" %%I in (test.dat) do set %%I )
是完全足够的。 就是这样 – 4行(如果你真的尝试,它可以被压缩到1)
重点是你只需要enabledelayedexpansion ,因此setlocal为了显示你正在改变的环境变量的值WITHIN THE LOOP WHERE YOU'RE CHANGING THE VALUES 。 你最终将删除这些线路,而enabledelayedexpansion失去了其存在的理由 。
为了测试,你可以写
@echo off echo before...JAVA=%java% echo before...JAVA_HOME=%java_home% if EXIST "test.dat" ( for /F "tokens=*" %%I in (test.dat) do set %%I ) echo after....JAVA=%java% echo after....JAVA_HOME=%java_home%
甚至
@echo off echo before&set java if EXIST "test.dat" ( for /F "tokens=*" %%I in (test.dat) do set %%I ) echo after&set java
事实上,如果getvariables.bat只能被CALL编辑,那么即使是@echo off也是多余的 – 假设你已经从调用批处理执行了@echo off 。
进入cmd并搜索setx。 它可以让你制作系统变量和所有其他类型的东西,甚至在文件中找到变量的x和y坐标。
总结以上是内存溢出为你收集整理的批处理脚本使其他batch file访问setlocalvariables全部内容,希望文章能够帮你解决批处理脚本使其他batch file访问setlocalvariables所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)