在UNIX中,您可以使用解释here的技术将脚本的输出分配给环境变量 - 但是Windows等价物是什么?
我有一个python实用程序,用于更正环境变量。该脚本只是将一系列字符写入stdout。出于这个问题的目的,我的实用程序是用python编写的这个事实是无关紧要的,它只是一个我可以从命令提示符调用的程序,它输出一行文本。
我想做这样的事情(有效):
set WORKSPACE=[ the output of my_util.py ]
运行此命令后,WORKSPACE环境变量的值应包含我的实用程序通常打印出的完全相同的文本。
可以吗?怎么样?
更新1:有人在工作建议:
python util.py | set /P WORKSPACE=
理论上,这会将python脚本的stdout分配给env-var WORKSPACE,但它不起作用,这里出了什么问题?
答案 0 :(得分:11)
使用:
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”并将env变量“my_env_var”设置为结果。
如果你在.BAT文件中运行它,请记住使用%% A代替%A。