2016-12-15 104 views
0

批处理中,我需要读取一个用python编写的配置文件,其中包含需要在批处理脚本中设置的多个变量!从脚本中设置的变量批量设置多个变量

例如:(变量取只是示例,值可以是整数,路径,...)

config.py

import time, os 
VERSION= "20160801" 
PATH = os.getcwd() 
... 

script.bat

SET VERSION= need to get VERSION variable from config.py 
SET PATH = need to get PATH variable from config.py 

我已发现此解决方案:

%PYTHON_PATH% -c "import config;print config.VERSION" > output 
set /p CURRENT_VERSION=<output 

,但它的功能只是一个变量,我需要设置大约30个变量,有没有一种方法可以更快地做到这一点,而无需每次导入config.py?

我为什么可以这样:

%PYTHON_PATH% -c "import config;print config.VERSION;print config.PATH" > version,path 
set CURRENT_VERSION=version 
set PATH=path 

感谢

回答

1
for /f "tokens=*" %%a in ('type config.py^|find "="') do set %%a 

但是:
set没有忽视空间,所以你的榜样,它会创建一个名为%path %变量(这不是不好,因为%path%是一个重要的系统变量。会导致意外的行为)。

你真的应该告诉植酮写的那些行没有空格...(和照顾,不使用变量名,这是必不可少的窗户)

+0

它不执行该脚本蟒蛇,就回到联营代码,所以对于变量TODAY,它返回“time.strftime(”%Y%M%d%H:%m:%S“)” – Virginie

+0

它应该如何处理您显示的文件内容?如果'config.py'是一个输出你显示内容的可执行文件,只需删除'type'命令即可。 – Stephan