通过 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%
.....
test.py
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 文件已创建,但是 IP
、PW
和 DIR
字段是空,所以脚本的其余部分无法执行。
我应该如何使用 python 脚本将多个参数传递给 .bat 文件?
尝试运行subprocess.run
:
p = subprocess.run(['test.bat', ipAdr, pasWD, locPath])
我在通过我的 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%
.....
test.py
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 文件已创建,但是 IP
、PW
和 DIR
字段是空,所以脚本的其余部分无法执行。
我应该如何使用 python 脚本将多个参数传递给 .bat 文件?
尝试运行subprocess.run
:
p = subprocess.run(['test.bat', ipAdr, pasWD, locPath])