如何使用python运行cmd windows netsh命令?

时间:2012-09-12 05:31:13

标签: python windows

我正在尝试在Windows 7上运行以下netsh命令,但它返回错误的语法

Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("netsh interface ipv4 set interface ""Conexão de Rede sem Fio"" metric=1")
The syntax of the file name, directory name or volume label is incorrect.


1
>>>

怎么了?

1 个答案:

答案 0 :(得分:4)

os.system是一个非常古老的选择,并不是真的推荐。

相反,您应该考虑subprocess.call()subprocess.Popen()

以下是如何使用它们:

如果您不关心输出,那么:

import subprocess
...
subprocess.call('netsh interface ipv4 set interface ""Wireless Network" metric=1', shell=True)

如果你关心输出,那么:

netshcmd=subprocess.Popen('netsh interface ipv4 set interface ""Wireless Network" metric=1', shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE )
output, errors =  netshcmd.communicate()
if errors: 
   print "WARNING: ", errors
 else:
   print "SUCCESS ", output