2012-12-13 120 views
0

我正在創建一個批處理文件以刪除在使用com0com之前創建的虛擬COM端口。在創作時,端口名稱,其中重命名,例如:在c中刪除虛擬COM端口#

change CNCA2 portname=COM20 

所以,當我想刪除我應該用原來的名稱,比如:

remove 2 

相當於原來的PORTNAME CNCA2

所以,即時嘗試在這裏做的是,如果用戶選擇刪除端口COM20,如何可以得到 原始名稱是CNCxx?下面

是我用命令的樣本:enter image description here

就像你看到的,當我寫remove COM150沒有變化,所以我需要得到相應的名稱,即remove 2

所以從C#應用程序我怎麼能得到相應的名稱,而無需手動使用list命令?

謝謝。

回答

2

您可以產生一個運行list命令的命令提示符進程,並通過將stdout重定向到一個文本文件來捕獲輸出。然後從文件中讀取結果。

從上面的例子中,解析結果並使用它們來創建一個字典應該相對簡單,所以你可以很容易地在給定新名字的情況下查找原始名稱。

+0

耶謝謝你的建議。我設法將'list'的輸出保存到一個文本文件中。我會嘗試閱讀或製作字典。雖然我以前從來沒有一本字典。 – Liban

+0

您不需要將輸出重定向到文件。在.NET中,Process類可以幫助您將標準輸出捕獲到流中,以便您可以直接讀取它。 –

+0

@AlvinWong,我不知道Process類可以捕獲標準輸出,這將是非常有用的,讓我檢查它如何。 – Liban