如何使用python运行cmd windows netsh命令?
问题描述:
我正在尝试在 Windows 7 上运行以下 netsh 命令,但是它返回错误的语法
I am trying to run the following netsh command on Windows 7 however It returns incorrect syntax
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
>>>
怎么了?
答
os.system
是一个非常古老的选择,并不真正推荐.
os.system
is a very old choice and not really recommended.
相反,您应该考虑 subprocess.call()
或 subprocess.Popen()
.
Instead you should consider subprocess.call()
or subprocess.Popen()
.
以下是它们的使用方法:
Here is how to use them:
如果你不关心输出,那么:
If you don't care about the output, then:
import subprocess
...
subprocess.call('netsh interface ipv4 set interface ""Wireless Network" metric=1', shell=True)
如果您确实关心输出,那么:
If you do care about the output, then:
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