2016-09-26 2 views
0

명령 프롬프트에서 런타임 변수를 Python으로 전달하여 거기에서 실행합니다 (im = n python). 이제 파이썬 프로그램의 결과를 저장하고 그 결과를 다시 명령 프롬프트에 사용하고 싶습니다. 나는 위와 같이 명령 프롬프트에서 파이썬 프로그램으로 사용자 입력 문자열을 전달하고 있습니다명령 프롬프트에서 파이썬 프로그램의 출력을 저장하는 방법은 무엇입니까?

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

을 다음과 같이 샘플입니다. 그에게 당신이 파이썬 함수를 호출하는 곳에서 떠들썩한 파티 스크립트를 가정

답변

1

이 정보가 도움이되는지 알려주세요. 파이썬 파일의

코드 (c.py) :

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% 

출력 :

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

프롬프트 명령에 다시 파이썬 프로그램의 결과를 사용하는 방법 , 그것은 같이 수행해야합니다 :

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

local pythonReturnOutput = $(callPython) 

당신은 지금 pythonReturnOutput를 사용할 수 있습니다.

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

경우에 따라 다릅니다. 파이썬 코드가 (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 
관련 문제