我經常想處理導致修改後的輸出文件的文件。我似乎無法找到PowerShell的方式做到這一點 - 它總是結束了在一襯墊,IYSWIM看起來像代碼。這是一個例子。PowerShell查詢:如何處理文件
我有一個LMHOSTS文件。不要問爲什麼!我想獲得一個只包含響應ping的服務器的新LMHOSTS文件。我也想通過任何評論線。
評論行以#開頭。
數據線這樣的事情(用空格隔開):
10.123.177.1 SVRDS1 #PRE #DOM:DOM1
或本:
10.241.177.30 SVRDS30 #PRE
這是我有什麼(與感謝Luke與劉炳章幫助主機):
gc 'C:\work\lmhosts.txt' | % { if ($_ -like '#*') { $_ | out-file 'C:\work\lmhosts2.txt' -append } else { if ($(Ping-Host $_.Substring(0, $_.indexof(' ')) -count 1 -timeout 10).received -eq 1) { $_ | out-file 'C:\work\lmhosts2.txt' -append } } }
它的工作原理,但它不是很好。我採取了程序員的方法,但是將其作爲一行代碼來完成。有沒有更好的方式來做到這一點,這是更'殼'和更少'代碼'?
小心使用類似。我會使用-match'^ \ s *#'來代替。如果有一個初始空間,類似的語句將無法捕捉它。 – 2009-10-20 17:26:34
感謝您的發現。 – serialhobbyist 2009-10-21 17:44:09