- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在 16x2 LCD 屏幕上显示来自 PC 的一些信息。我使用一个微型 python 程序来检索和解析数据(磁盘空间、温度等)并通过串行发送到 LCD。
我想显示实际的下载/上传速度,但我找不到任何 cmd 脚本或类似的东西可以使用。有什么建议吗?
最佳答案
您需要查询 WMI 以获取此信息。从 Python 执行此操作的最简单方法是简单地执行此 VB 脚本(它对我有用):
Option Explicit
On Error Resume Next
dim strComputer
dim wmiNS
dim wmiQuery
dim objWMIService
Dim objLocator
dim colItems
dim objItem
Dim strUsr, strPWD, strLocl, strAuth, iFLag 'connect server parameters
Dim colNamedArguments 'WshNamed object
subCheckCscript 'check to see if running in cscript
Set colNamedArguments = WScript.Arguments.Named
strComputer = colNamedArguments("c")
subCheckArguments
wmiNS = "\root\cimv2"
wmiQuery = "Select BytesTotalPerSec from Win32_PerfFormattedData_Tcpip_NetworkInterface"
strUsr = colNamedArguments("u") '""'Blank for current security. Domain\Username
strPWD = colNamedArguments("p") '""'Blank for current security.
strLocl = "" '"MS_409" 'US English. Can leave blank for current language
strAuth = ""'if specify domain in strUsr this must be blank
iFlag = "0" 'only two values allowed here: 0 (wait for connection) 128 (wait max two min)
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objLocator.ConnectServer(strComputer, _
wmiNS, strUsr, strPWD, strLocl, strAuth, iFLag)
Set colItems = objWMIService.ExecQuery(wmiQuery)
For Each objItem in colItems
Wscript.Echo funLine("Name: " & objItem.name)
Wscript.Echo "CurrentBandwidth: " & funConvert("M",objItem.BytesTotalPerSec )
Next
' *** subs are below ***
Sub subCheckCscript
If UCase(Right(Wscript.FullName, 11)) = "WSCRIPT.EXE" Then
Wscript.Echo "This script must be run under CScript"
WScript.Quit
End If
end Sub
Sub subCheckArguments
If colNamedArguments.Count < 4 Then
If colNamedArguments.Exists("?") Then
WScript.Echo "Uses Win32_PerfFormattedData_Tcpip_NetworkInterface to determine bandwidth" _
& VbCrLf & "This script can take arguments. It will analyze bandwidth of network adapter"_
& VbCrLf & "This is useful when you want to see the actual bandwidth of a network adapter" _
& VbCrLf & "Perhaps to troubleshoot cases when the adapter autodetects the wrong speed" _
& VbCrLf & "Alternate credentials can ONLY be supplied for remote connections" _
& VbCrLf & "Try this: cscript " & WScript.ScriptName & " [/c:yourcomputername] [/u:domainName\UserName] [/p:password]" _
& VbCrLf & "Example: cscript " & WScript.ScriptName & " /c:london /u:nwtraders\londonAdmin /p:P@ssw0rd" _
& VbCrLf & vbTab & " Connects to a remote machine called london in the nwtraders domain with the londonAdmin user" _
& VbCrLf & vbTab & " account and the password of P@ssw0rd. It returns the speed of each network adapter" _
& VbCrLf & "Example: cscript " & WScript.ScriptName _
& VbCrLf & vbTab & " Returns the speed of each network adapter on local machine"
WScript.Quit
End If
WScript.Echo "checking arguments"
If Not colNamedArguments.Exists("c") Then
WScript.Echo "Executing on Local Machine only"
strComputer = "localHost"
End If
If Not colNamedArguments.Exists("u") Then
WScript.Echo "Executing using current user name"
strUsr = ""
End If
If Not colNamedArguments.Exists("p") Then
WScript.Echo "Executing using current user password"
strPWD = ""
End If
End If
If colNamedArguments.Count = 0 Then
Exit Sub
End If
End Sub
Function funConvert(strC,intIN)
Select Case strC
Case "K"
funConvert = formatNumber(intIN/1000) & " KiloBytes"
Case "M"
funConvert = formatNumber(intIN/1000000) & " MegaBytes"
Case "G"
funConvert = formatNumber(intIN/1000000000) & " GigaBytes"
End Select
End Function
Function funLine(lineOfText)
Dim numEQs, separator, i
numEQs = Len(lineOfText)
For i = 1 To numEQs
separator= separator & "="
Next
FunLine = VbCrLf & lineOfText & vbcrlf & separator
End Function
改编自http://www.itworld.com/nlswindows070320?page=0,1
将 VB 代码复制并粘贴到名为 bandwidth.vbs 的文件中,然后从 cmd 中像这样运行:
cscript bandwidth.vbs
关于windows - 通过cmd获取网速(Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7376778/
我正在尝试制作一个命令行界面程序,它可以从用户输入中获取代码行并使用 execlp 执行它们。 我想知道是否有更好的方法来编写我的代码。 execlp(cmd[0], cmd[0], cmd[1] c
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我使用此脚本查找当前文件夹及其 .bat 文件: for /f %%i in ("%0") do set curpath=%%~dpi echo %curpath% 如果路径包含空格,它无法正常工作
在 Windows 的命令提示符处,我可以通过键入 echo 来回显响铃字符,然后按住 Ctrl+G 生成 echo ^G,运行时会发出铃声。 当我实际用键盘输入 echo ^G 时,它只会在屏幕上打
这是我执行的命令: >cmd /k >echo 1 1 >echo 2 2 >echo 3 3 >exit /b >cmd /c "doskey /history" echo 1 echo 2 ech
我需要编写一个命令来更改当前目录并打印包含在一些标签中的 NEW 目录。我以为 cd SOMEPATH & echo wkd%cd%wkd会这样做,但有一个问题。 这是一些示例输入和输出 C:\Use
我正在尝试从“调用 ppm 查询断言”中捕获 stoutput,如果它等于“ * 没有安装匹配 'assert' ** 的软件包”或更好但包含字符串“无软件包”做“某事” “.. 正在安装软件包。任何
似乎一个cmd脚本包含: prog1 prog2 与...相同 call prog1 call prog2 使用CALL命令有什么意义? 最佳答案 当需要调用另一个批处理程序(cmd脚本)时,应使用c
我要打电话 cmd /c "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com" mysolution.sln /b
在 Windows 上,可以轻松以管理员身份运行 cmd 应用程序: Right click on cmd icon >> run as administrator` 但我想以管理员身份使用 PhpS
我目前正在使用 Python 的 cmd 模块创建一个基于命令的游戏。 在某个时刻,我的 cmd.Cmd 对象会被嵌套。如果我说我正在运行命令提示符 A,那么在某个时刻,会在 A 内创建一个新的提示符
我正在尝试构建一个 cli 框架,其中需要动态添加命令。我想要实现的是 - 我将有一个继承自 cmd.Cmd 的最小类,稍后我将在单独的类中编写命令并将这些命令与主类一起加载。 以下是我尝试过的,但在
以下命令有什么区别: start %comspec% /c script.cmd start cmd /C script.cmd 我需要 script.cmd 的 cmd 窗口在 script.cmd
我正在尝试将一个长而复杂的 Windows 批处理文件转换为 Python。 除了细微的问题外一切正常,我怀疑这与引用有关,但不太清楚。 在批处理文件中,这工作正常: Reg.exe add "HKC
我想为 ffplay 或 ffmpeg 传递多个标题,它说我需要用 CRLF 拆分。在 linux 上我可以使用 \或 $'\r\n'但是 window 怎么样? SET CRLF=^ ffplay
我是 3D 软件 Blender 的用户。 我正在尝试在 CMD 中运行,因为 Blender 提供了 CLI 控制。 下面的代码工作正常。 blender -b "my.blend" ^ --pyt
我有一个包含版本资源的文件,其中填充了文件版本/产品版本字段。我需要通过 BAT 文件检索产品版本。例如,我在 bat 文件的输出中有 ProductVersion 1.0.1 的文件我不想有字符串“
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
我可以运行 forfiles 命令与cmd /c ,正如预期的那样 C:\>forfiles/c "cmd/c ping/a" 必须指定 IP 地址。 但是,如果我删除 cmd /c ,它不再识别任何
我有一个函数,它可以获取所有 USB 连接设备的信息。 connected_devices = :os.cmd('usb-devices | grep -A 1 Product=') 当我使用 :os
我是一名优秀的程序员,十分优秀!