Windows命令提示符下如何将命令输出保存为变量?
批处理捕获Python版本到变量的正确方法
你之前的脚本只是把命令字符串赋值给了变量,并没有实际执行命令并捕获输出。要实现把python --version的结果存到变量里,批处理需要用for /f命令来捕获命令执行的输出,另外注意部分Python版本中python --version的输出会发送到标准错误流(stderr),需要将其重定向到标准输出流(stdout)才能被捕获。
正确的脚本如下:
@echo off for /f "delims=" %%v in ('python --version 2^>^&1') do set "PythonVersion=%%v" echo Your Python installation is: %PythonVersion%
说明:
for /f "delims=" %%v:遍历命令执行的每一行输出,delims=表示保留整行内容(不按空格分割)'python --version 2^>^&1':执行python --version命令,2^>^&1是将stderr重定向到stdout(这里的^是转义符,因为在for的命令字符串里需要转义>和&)- 循环执行后,变量
PythonVersion就会被赋值为命令的输出内容
内容的提问来源于stack exchange,提问作者AlainD
相关产品推荐
相关产品推荐

