繁体   English   中英

通过 Python 脚本将多个输入传递给 .bat 文件

[英]Passing multiple inputs to .bat file via Python script

我在通过 python 脚本将一些参数传递到 test.bat 文件时遇到问题。

//test.bat
@echo off
:: Extracting and input arguments
set IP=%1
set PASS=%~2
set DIR=%~3

:: Setup logfile
set LOG_FILE="%cd%\testLog.log"
if exist %LOG_FILE% del %LOG_FILE%

echo -------------------------------------------------------- >> %LOG_FILE%
echo Date    :  %date% >> %LOG_FILE%
echo Time    :  %time% >> %LOG_FILE%
echo IP      :  %IP% >> %LOG_FILE%
echo PW      :  %PASS% >> %LOG_FILE%
echo PATH    :  %DIR% >> %LOG_FILE%
.....

测试文件

p = subprocess.Popen('test.bat', stdin = subprocess.PIPE)
ipAdr = '127.0.0.1'
pasWD = 'root'
locPath = 'C:\repos\batTester'

p.stdin.write(bytes(ipAdr , 'ascii')) #IP
p.stdin.write(bytes(pasWD , 'ascii')) #password
p.stdin.write(bytes(locPath , 'ascii'))#directory

我看到,该 Bath 文件运行正确,因为 testLog.log 文件已创建,但IPPWDIR字段为空,因此无法执行脚本的其余部分。 我应该如何使用 python 脚本将多个参数传递给 .bat 文件?

尝试运行subprocess.run

p = subprocess.run(['test.bat', ipAdr, pasWD, locPath])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM