どうも、Tです。
PowerShellを使ってテキストファイルに定期的に1行ずつテキストを書込む方法を調べてみました。
スポンサーリンク
やりたいこと
実際に作ったものを例に説明します。
PowerShellを作ったps1ファイルを右クリック「PowerShellで実行」をクリックすると・・・
プロンプトが表示されて、書き込むテキストが作成、追記されていく。
ファイルの中身は、1回に1行ずつ書き込まれる。画像では1秒に1回書き込み。
<書き込み回数>:WriteTime:<書き込み日時>
プロンプトで、Ctrl+cでストップする。
方法
下記のコードをps1ファイルとして保存して実行したら出来上がり。細かいところは読み解いてください。
$CUR_DIR = Convert-Path . #カレントディレクトリ取得
$DATE_TIME = Get-Date -UFormat %Y%m%d-%H%M%S #ログファイル名に含める日時
$TEXT_FILE = $DATE_TIME+'-WriteText'+'.txt' #テキストファイル名
$TEXT_PATH = $CUR_DIR+'\'+$TEXT_FILE #テキストファイル出力場所
$WRITE_INTERBAL = 1 #書込むまでの待ち時間(秒)
$WRITE_TIMES = 10000 #書込む回数
$WRITE_MESSAGE = ':WriteTime:' #テキストファイルに書込むメッセージ
$WriteCnt = 0 #書込み回数カウント
#プロンプトのメッセージ
Write-Output 'Being written now'
while($WRITE_TIMES -gt $WriteCnt){
#現日時取得
$NOW_TIMME = Get-Date -UFormat %Y%m%d-%H%M%S
#テキストファイルへの書込み
Write-Output $WriteCnt$WRITE_MESSAGE$NOW_TIMME | Out-File -Append $TEXT_PATH
$WriteCnt++
#指定時間待ち
Start-Sleep -Seconds $WRITE_INTERBAL
}
まとめ
単純だけどちょろちょろ使いたいパターンがあったので、今後も使っていきそう。
