从 cmd 收集输出时出现问题

issue collecting output from cmd

提问人: 提问时间:8/19/2022 更新时间:8/21/2022 访问量:36

问:

我正在尝试自动化一些取决于机器型号的东西,并使用其序列号进行检查。

目前,我正在尝试找到一种方法来获取序列号并保存它,以便我可以自动将其输入搜索栏(戴尔网站识别您的产品)

wmic bios get serialnumber >C:/test.txt

当我尝试运行它时,test.txt文件中没有显示任何内容

import os
os.system ('start cmd /k "wmic bios get serialnumber"')

当我尝试运行它时,它会返回 " 序列号 ABC123型 " 我只是不确定如何存储该信息以备后用。

python-3.x cmd 数据操作

评论

0赞 Stephan 8/19/2022
您启动一个实例并尝试执行一个名为 ?这甚至不能直接从 cmd 工作。在命令行中,try 和 和 。'cmd /?'' 告诉您有关报价的信息。cmd{"wmic bios get serialnumber"}start cmd /k {"wmic bios get serialnumber"}start cmd /k wmic bios get serialnumberstart cmd /k "wmic bios get serialnumber"
0赞 8/19/2022
我刚刚检查了我添加了一些导致问题的额外 {}。当我使用 os.system ('start cmd /k “wmic bios get serialnumber”') 时,序列号有效。我只是不知道如何保存该信息
0赞 Compo 8/21/2022
我什至不确定你是否需要包括在内。您是否尝试过: ,后跟 either 或 。cmd.exeimport subprocesssubprocess.Call('wmic.exe /Output:"C:\test.txt" BIOS Get SerialNumber')subprocess.Call('wmic.exe /Output:"C:\\test.txt" BIOS Get SerialNumber')

答:

0赞 user16826661 8/19/2022 #1

最终代码(就我的问题而言)

import os
os.system('start cmd /k "wmic bios get serialnumber >C:\\Users\\Batman is better than Superman\\Desktop\\test.txt"')

因此,值得注意的是,要使文件路径正常工作,您必须使用 \\,因为您会在下面出现语法错误。我还必须将文件路径包含在单引号中,而不是在右括号之后。

(SyntaxError:(unicode 错误)“unicodeescape”编解码器无法解码位置 44-45 中的字节:截断的 \UXXXXXXXX 转义)

我还发现(在此代码的后续步骤中使用 pycharm /selenium)如果您将文件路径设置为 (r'C:\blahblah),它可以工作,但我遇到了一个剥夺错误。以下是我为通过弃用警告而采取的措施的示例


serv = Service(r"C:\Users\BatMan\PycharmProjects\DellUpdate\Drivers\chromedriver.exe")
driver = webdriver.Chrome(service=serv)