在Windows Shell脚本(cmd.exe)中,如何将程序的标准输出分配给环境变量?
问题内容:
在UNIX中,您可以使用此处说明的技术将脚本的输出分配给环境变量-但是Windows等效项是什么?
我有一个旨在纠正环境变量的python实用程序。该脚本只是将字符序列写入stdout。出于这个问题的目的,我的实用程序是用python编写的事实是无关紧要的,它只是我可以从命令提示符中调用的程序,它会输出一行文本。
我想做这样的事情(可行):
set WORKSPACE=[ the output of my_util.py ]
运行此命令后,WORKSPACE环境变量的值应包含我的实用程序通常会打印出的完全相同的文本。
能做到吗 怎么样?
UPDATE1:有人在工作建议:
python util.py | set /P WORKSPACE=
从理论上讲,这会将python-script的stdout分配给env-var WORKSPACE,但是它不起作用,这是怎么回事?
问题答案:
采用:
for /f "delims=" %A in ('<insert command here>') do @set <variable name>=%A
例如:
for /f "delims=" %A in ('time /t') do @set my_env_var=%A
…将运行命令“ time / t”并将环境变量“ my_env_var”设置为结果。
如果在.BAT文件中运行此文件,请记住使用%% A而不是%A。