2012-01-09 101 views
0

嗨我一直試圖從顯示的現有文本中只取幾行。這是我一直在嘗試的代碼。批處理文件只顯示現有文本文件中的幾行

type C:\SystemInfo1.txt | findstr /C:"OS Name:" | findstr /C:"OS Version:">c:\SystemInfo.txt 
c:\systeminfo.txt 

這隻適用於一個即'OS名稱'。有什麼建議麼 ?

+0

不知道你在做什麼。爲什麼要搜索操作系統名稱兩次? – theglauber 2012-01-09 18:44:37

+0

我很抱歉dint發現它是'OS版本'的二倍。從系統信息文本文件我只需要一些信息不是全部。 – 2012-01-09 18:53:33

回答

1

試試這個:

type C:\SystemInfo1.txt | findstr /C:"OS Name:" /C:"OS Version:" 

的關鍵是FINDSTR只有一次使用,但根據需要傳遞多個字符串它。

您可以通過擺脫「類型」命令和管道的進一步簡化:

findstr /C:"OS Name:" /C:"OS Version:" C:\SystemInfo1.txt 

如果您正在搜索的字符串始終是在一行的開頭,這可能會幫助你克服你評論了關於這個問題(OS VS BIOS):

findstr /R "^OS (Version|Name)" C:\SystemInfo1.txt 

這是使用正則表達式搜索「OS」在一行的開頭,後跟「版本」或「姓名」。

+0

謝謝我嘗試了第一個,但是我得到了其中包含「版本」一詞的所有內容。 – 2012-01-09 19:18:01

+0

真的嗎?什麼版本的Windows?我在Windows XP SP3上測試了這一點,並且我得到了所有其中包含術語「OS名稱:」或「操作系統版本:」的行,但不是簡單的「版本」。 – theglauber 2012-01-09 19:23:26

+0

我的意思是我也得到BIOS版本,我有相同的操作系統 – 2012-01-09 19:30:45