Удаление виртуальных COM-портов в С#

Я создаю пакетный файл для удаления виртуальных COM-портов, созданных до использования com0com. во время создания имена портов были переименованы, например:

change CNCA2 portname=COM20

Поэтому, когда я хочу удалить, я должен использовать исходное имя, например:

remove 2 

что соответствует исходному имени порта CNCA2

Итак, что я пытаюсь сделать, так это то, что если пользователь решит удалить порт COM20, как получить исходное имя CNCxx?

ниже пример команды, которую я использовал: введите здесь описание изображения

как вы видите, когда я пишу remove COM150, изменений нет, поэтому мне нужно получить соответствующее имя, которое равно remove 2.

Итак, из приложения С#, как я могу получить соответствующее имя без ручного использования команды list?

Спасибо.


person Liban    schedule 13.12.2012    source источник


Ответы (1)


Вы можете запустить процесс командной строки, который запускает команду list и фиксирует вывод, перенаправляя стандартный вывод в текстовый файл. Затем прочитайте результаты обратно из файла.

Из приведенного выше примера должно быть относительно просто проанализировать результаты и использовать их для создания словаря, чтобы вы могли легко найти исходное имя по новому имени.

person Tim Long    schedule 13.12.2012
comment
да спасибо за предложение. мне удалось сохранить вывод list в текстовый файл. Я постараюсь перечитать его или сделать словарь. хотя у меня никогда раньше не было словаря. - person Liban; 13.12.2012
comment
Вам не нужно перенаправлять вывод в файл. В .NET класс Process может помочь вам записывать стандартный вывод в поток, чтобы вы могли читать его напрямую. - person Alvin Wong; 14.12.2012
comment
@AlvinWong, я не знал, что класс Process может захватывать стандартный вывод, это было бы очень полезно, позвольте мне проверить, как это сделать. - person Liban; 14.12.2012