【发布时间】:2018-05-22 21:31:25
【问题描述】:
我很难让 nbtstat 命令在 python 中运行。每当我运行以下代码时,都会收到错误“WindowsError: [Error 2] The system cannot find the file specified”。
print(subprocess.check_output(["nbtstat","-A",ipaddress]))
我也试过
print(subprocess.check_output(["C:\\Windows\\System32\\nbtstat.exe","-A",ipaddress]))
和
print(subprocess.check_output("nbtstat -A "+ipaddress))
这些版本都不起作用。
为了让它正常运行,我从命令中遗漏了什么吗?
在运行 python 2.7.11 的 Windows 上(无法更新)
【问题讨论】:
-
你能从运行 Python 的
Command Prompt运行nbtstat吗?如果您尝试通过另一个 shell(即subprocess.check_output(["cmd", "/c", "nbtstat"]))间接运行它,您会得到什么? -
@abarnert - 在 64 位 Windows 上
%WINDIR%\system32实际上包含 64 位二进制文件(如果没有特定版本的 64 位版本,则为 32 位二进制文件) -
@zwer 是的,我记得在我写完之后……但同时,在搜索时,我发现
nbtstat实际上是 32位的,至少在我能找到记录的最后一个版本,维基百科也同意,所以……我正打算回来删除我的评论。 -
出于好奇(很好的答案!)——当你说“在命令提示符中输入它可以正常工作”时——你只是输入
nbtstat,还是输入c:\Windows\system32\nbtstat.exe? -
是的,我看到了答案(因此恭维);只是……令人惊讶……
cmd.exe会隐式重定向显式请求以运行 32 位system32复制到sysnative。
标签: python subprocess