繁体   English   中英

在Windows shell脚本(cmd.exe)中,如何将程序的标准输出分配给环境变量?

[英]In Windows shell scripting (cmd.exe) how do you assign the stdout of a program to an environment variable?

在UNIX中,您可以使用此处说明的技术将脚本的输出分配给环境变量 - 但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,但它不起作用,这里出了什么问题?

采用:

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.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM