DotNet-ListComPort View on GitHub
Introduction
A simple CLI tool that can list COM ports with their full name easily and cleanly.
This tool is intended to replace the tedious task of having to use the mode
command, and the Device Manager to find a newly plugged-in device that provides a COM port.
This version of the program is a complete refactoring of my old PB-ListComPort project that also changes from the proprietary and paid PureBasic language and compiler to .NET 6.0.
Requirements
● Windows
∘ Any CPU architecture
● .NET 6.0
∘ Optional if using the larger "self-contained" builds.
Improvements over PB-ListComPort
● Switched from PureBasic to .NET 6.0.
● Improved a lot of the program's logic.
● Added the -H/--short-help
.
● Added support for Windows ARM & ARM64.
● Support for running without a console.
Screenshots
Usage
[-h|--help] [-H|--short-help] [-n|--show-name-raw] [-P|--no-pretty] [-s|--sort]
[-S|--sort-reverse] [-t|--tab-padding] [-v|--version] [-V|--version-only]
Launch arguments:
-a, --show-all Display the complete port's name (Equal to '-dfn')
-d, --show-device Displays the port's device name
-D <str>, --divider <str> Uses the given string or char as a separator (Can be empty string !)
-f, --show-friendly Displays the port's friendly name
-h, --help Display this help text
-H, --short-help Display the short help text
-n, --show-name-raw Displays the port's raw name (See remarks section)
-P, --no-pretty Disables the pretty printing format (Equal to -D " ")
-s, --sort Sorts the port based on their raw names in an ascending order
-S, --sort-reverse Sorts the port based on their raw names in a descending order
-t, --tab-padding Use tabs for padding between the types of names (Overrides '-D')
-v, --version Shows the utility's version number and other info
-V, --version-only Shows the utility's version number only (Overrides '-v')
Output formatting
└──> ${Raw name} => COM1
*┬> '-d' or '-f'
├──> ${Device name} => \Device\Serial1
└──> ${Friendly name} => Communications Port
*┬> '-d' and '-f'
└──> ${Friendly name} [${Device name}] => Communications Port [\Device\Serial1]
*┬> '-n' and '-d'
└──> ${Raw name} [$DeviceName] => COM1 [\Device\Serial1]
*┬> '-n' and '-f'
└──> ${Raw name} - ${Friendly name} => COM1 - Communications Port
*┬> '-ndf' or '-a'
└──> ${Raw name} - ${Friendly name} [${Device name}] => COM1 - Communications Port [\Device\Serial1]
*┬> '-ndfp' or '-ap'
└──> ${Raw name} ${Friendly name} ${Device name} => COM1 Communications Port \Device\Serial1
*┬> '-ndfD ";"' or '-aD ";"'
└──> ${Raw name};${Friendly name};${Device name} => COM1;Communications Port;\Device\Serial1
Packages
Single Builds
Lighter builds that only contain the exe and required licenses.
You will need to install the .NET 6.0 Runtime.
Self-Contained Builds
Larger builds that contain the exe and the .NET 6.0 Runtime as well as the required licenses.
MSI Installers
Windows installers that contain the relevant "Self-Contained" build with an option to automatically update existing installations and add the program to the %PATH%.
The install location is %ProgramFiles%\NibblePoker\lscom\ and cannot be changed. (This will be possible in future releases)