2010.04.20この記事は以前にdevslife.comで紹介したものです。ビルドプロセスがとんでもなく巨大なテキストファイルを吐き出した。これは何かが無限ループしていると思うのだがその原因を突き止めなければいけない。ファイルの最後の方を何とかして読む必要がある。600MBもあるテキストファイルの最後のほうだけをどうやって読むことができるだろうか。PowerShellを使ってやってみようと思う。Get-Contentではどうだろうかと初め考えた。次のようなコードを書いてみた。1$Textこれだと初めの一行を読むということだもんね。このログファイルはXMLなのですべてのデータが一行に収まってるから使えない。試しに-TotalCountを-1とか-2とかにしたら後ろから読んでくれるかな?と思ってやってみたら全部読み込まれてしまった。ヘルプを読んでみると-1はデフォルトの値ですべてを読み込むという意味らしい。-2にしても無駄だった。できたとしても今回の問題については意味のないことだ。ちなみに-ReadCountというパラメータもあるのだがこれも使えない。これは何行読んだら画面に表示してくれというのに使うらしい。大きなファイルを読むには使えそうだが、結局は早すぎて読めんだろ。これで既存のCmdletを使用した方法はあきらめることにした。試行錯誤の末、下のようなPowerShellスクリプトで最後の1024バイトを読み込むことに成功。$text適当に$TextFilePathと$BytesToReadの値を変えると表示されるテキストファイルやその量を調節できます。変えるといろんなところをのぞけそうです。一応PowerShell.exeのメモリが肥大することなく無事終了しました。更新:使えると思ったのでニュースグループにも英語で書いておきました。Directoryグループのプロパティを変更する方法について説明します。文字列を比較するにはいくつかの方法があります。この記事では文字列を比較する方法について説明します。-includeパラメータは、-pathパラメータで指定した項目の中から、対象を絞り込みます。"*.txt"などパス要素やパターンを指定します。場合にコードを実行するための制御構造です。使用方法について説明します。プロバイダを使用することができます。Import-GPOコマンドレットを使用します。Frameworkを利用可能なシェルだからこそ、なせる技ですよね。Framework使っちゃおうみたいな。これ、ちょっとカスタマイズして関数化しても良さそうですね。しても、英語でさらっと投稿できるあたりがうらやましいです。Frameworkを直接使えてしまうところは最強ですよね。Frameworkを使ったことのある人じゃないと有り難みが分からないのではと思います。Frameworkをベースにしている訳ですからそっちの勉強がおろそかになってはいけないんですよね。12:37そうですね。VB.NETやC#で開発経験がある方でないと、理解しがたいし、ありがたみはわからないかもしれませんね。このサイトで、その辺も含めて記事を書いていけたらいいですね。コメントを書き込むコメントをどうぞメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。Blog.ホーム検索トップサイドバータイトルとURLをコピーしました。