我现在正在.bat项目中工作。到目前为止,.bat中的函数调用Python脚本,.py检查.c文件中的某些数据,并在.txt文件中生成报告,.bat继续运行。但是我想在运行.bat时在控制台中显示来自.txt的信息。我的意思是将信息从.py发送回.bat。我找到了一种将信息从.py发送到.bat的方法,但是这些方法只能从头开始打开.bat,这只会中断函数的过程。
除了已经提到的.bat项目外,我还制作了两个小脚本(.bat和.py),它们可以工作。但是此逻辑不适用于我的主项目,因为在已实现的逻辑中,.py从头开始重新打开.bat。
这是我的两个小型工作脚本的逻辑: .bat脚本:
@echo off
color 2f
set arg1=%1
set Tool.Python.exe=D:\uti\programs\Python27\python.exe
set Python.File.Path=C:\Users\gml1028\Desktop\sending_args.py
if "%arg1%"=="" (
goto openPython
)
echo My own interface
echo Press 1 for showing some numbers
echo Press 2 for showing some letters
echo Press 3 for showing letters and numbers
set /p select=Select:
if "%select%"=="1" (
goto showNumbers
)
if "%select%"=="2" (
goto showLetters
)
if "%select%"=="3" (
goto showAlphanumerics
)
:openPython
call %Tool.Python.Exe% -u %Python.File.Path%
goto :eof
:end
:showNumbers
echo 1
echo 2
echo 3
echo 4
echo The number is %arg1%
pause
goto :eof
:showLetters
echo a
echo b
echo c
echo d
echo The number is %arg1%
pause
goto :eof
:showAlphanumerics
echo 1a
echo 2b
echo 3c
echo 4d
echo The number is %arg1%
pause
goto :eof
.py脚本:
import os, subprocess, random
filepath=r'C:\Users\visgmo\Desktop'
executable = os.path.join(filepath, 'sending_args.bat')
p = subprocess.Popen([executable, str(random.randrange(0,20))])
在这种情况下,我不在乎.bat是否重启,因为我只是在尝试是否起作用。但是我在主项目中这样做是因为调用.py文件后,.bat需要保持运行。
谢谢。