如何将cmd输出中的每一行通过管道传输到由Microsoft SQL创建的表中的一列?

如何将cmd输出中的每一行通过管道传输到由Microsoft SQL创建的表中的一列?,cmd,pycharm,sql-server-2014,python-3.6,wmic,Cmd,Pycharm,Sql Server 2014,Python 3.6,Wmic,我试过这个命令,我知道它是有效的 for /f "usebackq skip=1 tokens=*" %i in (`wmic/node:'+adr+' product get installdate ^| findstr /r /v "^$"`) do @echo %i “adr”将替换为IP地址,并删除串联和额外的撇号。当我在Python中使用它时,我确实使用subprocess.call()方法,它也在控制台中工作 然而,这是我的问题。主命令本身(wmic/node)将在不同的行上打印所

我试过这个命令,我知道它是有效的

for /f "usebackq skip=1 tokens=*" %i in (`wmic/node:'+adr+' product get installdate ^| findstr /r /v "^$"`) do @echo %i
“adr”将替换为IP地址,并删除串联和额外的撇号。当我在Python中使用它时,我确实使用subprocess.call()方法,它也在控制台中工作

然而,这是我的问题。主命令本身(wmic/node)将在不同的行上打印所有内容。这是预期的行为,但我希望这样做,以便每个安装日期都写入在Microsoft SQL Server 2014 Management Studio上的数据库中创建的表的同一列中的下一行,而不仅仅是一行。我曾试图在网上寻找一个与此相似的案例,但我没有这样的运气

下面是我的代码,我不确定是否应该更改任何内容以获得所需的结果

installdate = subprocess.call('for /f "usebackq skip=1 tokens=*" %i in (`wmic/node:'+adr+' product get installdate ^| findstr /r /v "^$"`) do @echo %i', shell=True)
cur.execute("INSERT INTO InstalledApps (InstallDate) VALUES (?)", installdate)

请查看subprocess.call文档。它返回退出代码,而不是命令的输出。请参见
stdout=
以捕获输出。在重新阅读您的问题后,我发现您使用的是Python 3.6。现在建议使用subprocess.run()函数。