2016-09-26 8 views
0

コマンドプロンプトから実行時変数をPythonに渡して実行しています(im = n python)。今私はpythonプログラムの結果を保存し、それらの結果をコマンドプロンプトに戻したい。私は上記のように、コマンドプロンプトからPythonプログラムへのユーザー入力文字列を渡しているコマンドプロンプトでPythonプログラムの出力を保存する方法は?

set input= 
set /P input=Enter Layer Name:%=% 
C:\Python27\python.exe F:\xampp\htdocs\flood_publish\projection_raster.py %input% 

を次のようにサンプルがあります。

function callPython() 
{ 
    local pythonResult=<code for calling python> 
    echo $pythonResult 
} 

local pythonReturnOutput = $(callPython) 

、あなたが今pythonReturnOutputを使用することができます。 どのようにPythonの関数を呼び出しているところ、それは次のように行われる必要がありますから、そのbashスクリプトを想定すると、バックコマンドにプロンプ​​ト

答えて

1

これが役立つかどうか教えてください。

import sys 

print('You passed ',sys.argv[1]) 

Windowsバッチコード(a.bat):

@echo off 

set input= 

set /P input=Enter Layer Name:%=% 

(python c.py %input%) > tmp.txt 

set /P output=<tmp.txt 

echo %output% 

バッチコードの出力:

Pythonのファイル(c.py)の

コード

C:\Users\dinesh_pundkar\Desktop>a.bat Enter Layer Name:Dinesh You passed Dinesh C:\Users\dinesh_pundkar\Desktop> 
-1

をPythonプログラムの結果を使用しています。

bash、シェルスクリプトを使用していない場合、この回答は間違っている可能性があります。しかし、スクリプトがない場合は、その場所にスクリプトを置くことを強くお勧めします。

+0

これは明らかにbashスクリプトではありません。 OPはWindowsのパスを使用しており、タグで明示的に 'cmd'を参照しています。 –

+0

BashスクリプトはWindowsでも動作します:http://www.howtogeek.com/261591/how-to-create-and-run-bash-shell-scripts-on-windows-10/ – prabodhprakash

+0

これはWindows 10に固有ですどのようなWindows 2008サーバーとWindows 2012サーバーと他のバージョンについては? –

0

場合によって異なります。 Pythonコードが値(exit(<returncode>))を終了している場合は、%ERRORLEVEL%環境変数から取得できます。あなたがキャプチャし、標準出力を処理するために喜んでいる場合

<yourpythoncommand> 
echo Return code: %ERRORLEVEL% 

は、あなたがFORループを使用する必要があります。

FOR /F "delims=" %%I IN ('<yourpythoncall>') DO CALL :processit %%I 
GOTO :EOF 

:processit 
echo Do something with %1 
GOTO :EOF 

、あなたがラインで出力ラインを処理したくない場合は、出力を一時ファイルにリダイレクトするのが最も簡単です。

<yourpythoncommand> >%TEMP%\mytempfile.txt 
<do something with %TEMP%\mytempfile.txt> 
del %TEMP%\mytempfile.txt 
関連する問題