是否可以从python将数据发送到bat文件中的特定功能?

时间:2019-03-21 09:27:58

标签: python windows batch-file

我现在正在.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需要保持运行。

谢谢。

0 个答案:

没有答案