在 Windows 子系统中查找 Linux 的活动串行端口 (WSL)
Find active serial ports in Windows Subsystem for Linux (WSL)
如何找到 串行端口 是 Windows 子系统中 Linux 的活动端口?我知道 added support in WSL 用于使用 /dev/ttyS
,但这些端口中的哪些端口处于活动状态?
我要解决的问题是我有一个设备可以保持切换正常,因为内部芯片会在新端口上自行重新连接。我想创建一个 bash 脚本来查找活动的串行端口。
像这样的常规 linux 命令: dmesg | grep tty
不起作用。
我创建了一个结合了 Powershell 和 WSL[ 的解决方案=40=].
1.Create 一个 Powershell 脚本,
舒适。ps1:
$DeadComport = 3
$COMportList = [System.IO.Ports.SerialPort]::getportnames()
if ($COMportList.Count -cgt 2) {
Write-Output "Too many com-ports connnected! "
Write-Host -NoNewline "Com-ports found:" $COMportList.Count
}else{
ForEach ($COMport in $COMportList) {
$temp = new-object System.IO.Ports.SerialPort $COMport
$portNr = $temp.PortName.SubString(3)
if ($portNr -eq $DeadComport){
continue
}
Write-Output $portNr
$temp.Dispose()
}
}
- 您可以在 PowerShell ISE 中调试此代码并根据您的喜好进行调整。
2.Create WSL 中的 bash 脚本,
comscript.sh:
最好在 home/your-username/bin
文件夹中,这使得 bash-脚本全局可执行。
#!/bin/bash
echo "Active com-port"
powershell.exe -File "c:\your-folder\comports.ps1"
现在你可以调用comscript.sh它会输出活动的comport,如果找到了不止一个设备它将抛出一条错误消息。
请注意,我正在过滤掉 com-port 3,因为它在我的计算机上一直存在并处于活动状态。
如何找到 串行端口 是 Windows 子系统中 Linux 的活动端口?我知道 added support in WSL 用于使用 /dev/ttyS
,但这些端口中的哪些端口处于活动状态?
我要解决的问题是我有一个设备可以保持切换正常,因为内部芯片会在新端口上自行重新连接。我想创建一个 bash 脚本来查找活动的串行端口。
像这样的常规 linux 命令: dmesg | grep tty
不起作用。
我创建了一个结合了 Powershell 和 WSL[ 的解决方案=40=].
1.Create 一个 Powershell 脚本, 舒适。ps1:
$DeadComport = 3
$COMportList = [System.IO.Ports.SerialPort]::getportnames()
if ($COMportList.Count -cgt 2) {
Write-Output "Too many com-ports connnected! "
Write-Host -NoNewline "Com-ports found:" $COMportList.Count
}else{
ForEach ($COMport in $COMportList) {
$temp = new-object System.IO.Ports.SerialPort $COMport
$portNr = $temp.PortName.SubString(3)
if ($portNr -eq $DeadComport){
continue
}
Write-Output $portNr
$temp.Dispose()
}
}
- 您可以在 PowerShell ISE 中调试此代码并根据您的喜好进行调整。
2.Create WSL 中的 bash 脚本, comscript.sh:
最好在 home/your-username/bin
文件夹中,这使得 bash-脚本全局可执行。
#!/bin/bash
echo "Active com-port"
powershell.exe -File "c:\your-folder\comports.ps1"
现在你可以调用comscript.sh它会输出活动的comport,如果找到了不止一个设备它将抛出一条错误消息。
请注意,我正在过滤掉 com-port 3,因为它在我的计算机上一直存在并处于活动状态。