#initialization   $timeInterval = 30 #监测间隔   $record = @{"Coding" = 0; "Outlook Email" = 0; "Gmail" = 0; "Google Reader" = 0; "BBS" = 0; "Other Internet" = 0; "Documents" = 0;}  $count = 0  $date = date -format "yyyyMMdd"  #try to resume  if (test-path "d:/temp/timeRecord$date.txt") {    gc "d:/temp/timeRecord$date.txt" | % {if ($_ -match "/w+/s+/d+") {      $groups = [Regex]::Match($_, "^(/w+/s?/w+)/s+(/d+)").Groups;      $record[$groups[1].Value] = [int]::Parse($groups[2].Value);    }}  }  #start to monitor  while ($true)  {    $titles = ps | ? {$_.MainWindowTitle} | select MainWindowTitle    $titles | % {      if ($_ -match "Google 阅读器 - Windows Internet Explorer") {$record["Google Reader"]++;}      else {if ($_ -match "Gmail - Windows Internet Explorer") {$record["Gmail"]++;}      else {if ($_ -match "Internet Explorer") {$record["Other Internet"]++;}      else {if ($_ -match "Visual Studio") {$record["Coding"]++;}      else {if ($_ -match "Microsoft Word") {$record["Documents"]++;}      else {if ($_ -match "Microsoft Office OneNote") {$record["Documents"]++;}      else {if ($_ -match "Microsoft PowerPoint") {$record["Documents"]++;}      else {if ($_ -match "Message (HTML)") {$record["Outlook Email"]++;}      else {if ($_ -match "bbs") {$record["BBS"]++;}      }}}}}}}}    }    sleep($timeInterval)    $count = ($count + 1) % 10 #为了防止数据丢失,每10次记录写入文件一次    if ($count -eq 0) {$record > "d:/temp/timeRecord$date.txt"}  }为了解技术思路,研究了一下powershell.
整个开发与部署过程如下:
1.下载WindowsXP-KB926139-v2-x86-ENU
安装powershell环境;
2.按照代码要求,写一个简单的脚本;
3. 运行powershell时,同 bat是有区别的.注意以下方法:
1) 解除限制:
set-executionpolicy Unrestricted
2) 将文件名保存为ps1
3) 通过以下方法运行(假如文件名是c:a.ps1)
PS C:> .a
[@more@]
示例代码:
function foo ( [int] $x){$x = $x + 1echo $x}foo (1 )新闻热点
疑难解答
图片精选