2016-12-15 2 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 

I

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

しかし、それはちょうど1つの変数で機能し、約30の変数を設定する必要があります。

なぜ私はこのことができます:

%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 

しかし:あなたの例と、それは%path %という名前の変数が作成されますので、
setは、空白を無視しません。 (%path%は必須のシステム変数であるため、ではありません。予期せぬ行動につながる)。

あなたは本当にそれがスクリプトのpythonを実行し、ちょうど仲間を返しません

+0

...スペースを入れずにこれらの行を記述することphytonを伝える(や窓に不可欠な変数名を使用しないように注意する)必要がありますコードでは、変数TODAYのために "time.strftime("%Y%M%d%H:%m:%S ")" – Virginie

+0

を返します。 'config.py'があなたが示したものを出力する実行ファイルであれば' type'コマンドを削除してください。 – Stephan

関連する問題