テキストファイルを読み込むには言わずと知れたGet-Contentコマンドレットを使う。
通常はこれで全く問題ないと思うが、特別性能を要求されるような処理では、System.IO.FileクラスのReadAllTextメソッドを使うと良い。
ただし、このメソッドは排他されているファイルの読み込みが出来ない。
そんな時は、StreamReaderクラスを使い、アクセスモードを指定する。
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 | #Measure-Command{ # [System.IO.File]::ReadAllText("$env:windir\windowsupdate.log") #} Measure-Command{ gc $env:windir\windowsupdate.log } Measure-Command{ $mode = [System.IO.FileMode]::Open $access = [System.IO.FileAccess]::Read $fileshare = [System.IO.FileShare]::ReadWrite $file = [System.IO.File]::Open( "$env:windir\windowsupdate.log",$mode,$access,$fileshare) $reader = New-Object System.IO.StreamReader($file) $reader.ReadToEnd() $reader.Close() $file.Close() } |
0 件のコメント:
コメントを投稿