我的Python脚本/Powershell使用中有什么问题吗?

我的Python脚本/Powershell使用中有什么问题吗?,python,powershell,Python,Powershell,因此,我试图以编程方式添加打印机,但得到一个0x00000709错误 这是什么原因造成的?我怀疑我的代码中有点不对劲: import subprocess def printerSetup(printer): subprocess.call(r'Cscript c:/windows/System32/Printing_Admin_Scripts/en-US/Prnport.vbs -a -r "' + printer + '.print.mediag.com" -h "' + print

因此,我试图以编程方式添加打印机,但得到一个0x00000709错误

这是什么原因造成的?我怀疑我的代码中有点不对劲:

import subprocess
def printerSetup(printer):
    subprocess.call(r'Cscript c:/windows/System32/Printing_Admin_Scripts/en-US/Prnport.vbs -a -r "' + printer + '.print.mediag.com" -h "' + printer + '.print.mediag.com" -o raw')
    if printer == 'jupiter':
        subprocess.call(r'rundll32 printui.dll, PrintUIEntry /if /b "' + str.title(printer) + '" /u /y /f w:\printers\\toshibae3511\eng\est_c2.inf /r "' + printer + '.print.mediag.com" /m "TOSHIBA e-STUDIO Color PS3"')
    elif printer == 'saturn' or printer == 'neptune':
        subprocess.call(r'rundll32 printui.dll, PrintUIEntry /if /b "' + str.title(printer) + '" /u /f w:\printers\\toshibae3511\eng\est_c2.inf /r "' + printer + '.print.mediag.com" /m "TOSHIBA e-STUDIO Color PS3"')  
    elif printer == 'mercury':
        subprocess.call(r'rundll32 printui.dll, PrintUIEntry /if /b "' + str.title(printer) + '" /u /f w:\printers\dell1720\drivers\print\dell1720\DKABJ740.inf /r "' + printer + '.print.mediag.com" /m "Dell Laser Printer 1720dn"')
    elif printer == 'sonic' or printer == 'pangea':
         subprocess.call(r'rundll32 printui.dll, PrintUIEntry /if /b "' + str.title(printer) + '" /u /f w:\printers\HPUniversalPS_x64\hpcu112v.inf /r "' + printer + '.print.mediag.com" /m "HP Universal Printing PS"')

printerList = ["neptune", "saturn", "mercury", "jupiter", "sonic", "pangea"]

for x in printerList:

    printerSetup(x)

现在,这些打印机中的每一台都肯定已添加到网络中,我正在调用Windows打印脚本-这可能与我的列表有关吗?

您必须传递一个列表:

subprocess.call(['Cscript', r'c:/windows/System32/Printing_Admin_Scripts/en-US/Prnport.vbs', '-a', ...])
还要检查引号


看一看关于pythonic的一点,一般来说,
如果打印机位于['saturn','neptune']:
如果打印机='saturn'或打印机='neptune':
更可取。谢谢!语法正确总是好的。你确定你的打印机名称和路径正确吗?该错误似乎与打印机标识符不正确有关。