我经常想处理导致修改后的输出文件的文件。我似乎无法找到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