PowerShellタイムロギングスクリプト
2022-01-05 03:24:50
#initialization
$timeInterval = 30 #monitoring interval
$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 Reader - 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 # To prevent data loss, write to the file once every 10 records
if ($count -eq 0) {$record > "d:\temp\timeRecord$date.txt"}
}
技術的な考え方を理解するために、powershellについて調べました。
開発・展開の全体の流れは以下の通りです。
1. Download WindowsXP-KB926139-v2-x86-ENU
powershell 環境をインストールします。
2. コードの要件に従って、簡単なスクリプトを書く。
3. powershellを実行する場合、batとの違いがあります。以下の方法に注意してください。
1)アンリストラクト
set-executionpolicy Unrestricted
2) ファイル名を ps1 として保存します。
3) 実行(ファイル名が c:a.ps1 の場合)スルー
PS C:> .a
[もっと見る]
コード例です。
function foo ( [int] $x)
{
$x = $x + 1
echo $x
}
foo (1 )
関連
-
Powershellを選択すべき10の理由(cmdを捨てるべき)
-
このシステムでのスクリプトの実行を無効にするPowerShellソリューション
-
PowerShell 5.0の新機能が公開されました。
-
PowerShell は、現在のスクリプトランタイムによって消費されるメモリの動的フェッチを実装しています。
-
PowerShellの条件付きパイプライン終了方法
-
PowerShellファイル同期スクリプトを共有
-
PowerShellでWPFを呼び出してクールなウィンドウを生成する例
-
PowerShellでNICの状態と対応する電源設定を確認する
-
PowerShellでF1ヘルプコマンドのアクセスをオンラインドキュメントに変更する方法
-
PowerShellでWindowsの機能オプションを表示する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
デジタル署名のないスクリプトはPowerShellで実行されない
-
PowershellによるWindowsログのクエリ方法
-
What-ifのためのPowershellエラー処理
-
PowerShellの基本的な使い方のチュートリアル
-
Powershellディレクトリフォルダ管理権限継承・割り当て方法
-
PowerShell で .NET Framework を使用して、グローバルアセンブリキャッシュにアセンブリを追加する。
-
Powershellスクリプトで条件付きブレークポイントを使用する例
-
Powershell ISE 抽象構文木 プログラミング例
-
PowerShellでWAVオーディオファイルを再生する
-
Powershellが文字列をインターセプトして省略記号を追加する例