在UWP中,我尝试使用netsh查找保存的wifi配置文件。我通过使用类似这样的参数启动cmd进程来做到这一点:
import re
from collections import namedtuple
Hello = namedtuple('Hello', 'i time x y') # or import your own ready definition
hello_pattern = re.compile(r'Hello\(i=(\d+), time=(\d+), x=(\d+), y=(\d+)\)')
data = []
with open('file.txt') as inputfile:
for line in inputfile:
recovered = [
Hello(*map(int, match))
for match in hello_pattern.findall(line)
]
data.append(recovered)
该过程运行正常,但输出如下:
public MainPage()
{
this.InitializeComponent();
var proc = new Process
{
StartInfo = new ProvessStartInfo
{
FileName = "cmd.exe",
Arguments = "/C netsh wlan show profiles",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
proc.Start();
while(!proc.StandardOutput.EndOfStream)
{
string line = proc.StandardOutput.ReadToEnd();
}
proc.WaitorExit();
}
因此,我尝试在代码的The following command was not found: wlan show profiles
中使用netsh help
命令,看看输出是什么,我得到了:
Arguments
您可以看到,缺少了很多命令,包括我需要的wlan命令。
UWP的目标版本是Windows 1809 /最低Windows 1803,它的版本为x64。我首先认为丢失的命令可能是由于在SysWow64而不是System32下使用netsh的过程,但是当我尝试使用常规cmd时,wlan可以正常工作并且命令的完整列表可以按预期使用。
有人知道为什么吗?谢谢。