**以前のリビジョンの文書です**

Aviutlのエンコード進捗率確認用スクリプト

出力イメージは、エンコード状況を参照。

スクリプトはPowerShellで動かす。

#---------------------------------------------------------
#---- エンコード進捗率をそれっぽく吐き出すスクリプト
#---------------------------------------------------------

#---------------------------------------------------------
#---- $AviutlPath : Aviutlのパス
#---- $OutputMovie: ファイルの出力先パス
#---- $Filetype   : 出力ファイルの拡張子
#---- $Machine    : エンコード中のマシン名
#---------------------------------------------------------
$AviutlPath  = "C:\movie\aviutl"
$OutputMovie = "V:\anime"
$Filetype    = "mp4"
$OutputLog   = "Z:\data\txt\encoding.txt"
$Machine     = "KIYOKA"

#---------------------------------------------------------
#---- 日付とAviutlのエンコード残り時間取得(window名の取得)
#---------------------------------------------------------
$Date = date
$Run  = get-process | % {if ($_.mainwindowhandle -ne 0) {$_.mainwindowtitle}} | ?{$_ -like "出力中*"}

#---------------------------------------------------------
#---- Dokuwiki用のフォーマットで記載する
#---------------------------------------------------------
Set-Content $OutputLog "====== エンコード状況 ======" -encoding UTF8
Add-Content $OutputLog "" -encoding UTF8
Add-Content $OutputLog "** $Date 取得(取得時間が古い場合、たぶん $Machine はお休み中です) **" -encoding UTF8
Add-Content $OutputLog "" -encoding UTF8

if($Run.IndexOf("出力中")){
        Add-Content $OutputLog "  * 現在、エンコード中のタスクはありません。" -encoding UTF8
}

#---------------------------------------------------------
#---- Aviutlで使っているbatchファイルの一覧取得
#---------------------------------------------------------
$AviutlBatch = @(Join-path $AviutlPath batch* -Resolve)

#---------------------------------------------------------
#---- バッチの名前の順で一覧を取得してるから、最初だけ出力中の%を出して、後は保留。
#---- 並び替えたときの動作までちゃんと見てない。
#---------------------------------------------------------
for( $count=0 ; $count -lt $AviutlBatch.Length; $count++){
    $Encoding = Get-Content -Path $AviutlBatch[$count] -TotalCount 1
    $Index1 = $Encoding.IndexOf($OutputMovie)
    $Index2 = $Encoding.IndexOf($Filetype) + $Filetype.Length
    $Encoding = Split-Path $Encoding.SubString($Index1,$Index2 - $Index1) -leaf
    if($count -eq 0){
#        Write-Host "$count : $Encoding : $Run"
        Add-Content $OutputLog "$Machine が頑張ってエンコードしてくれてます。" -encoding UTF8
        Add-Content $OutputLog "^  エンコード順序  |  エンコ対象  |  進捗率  |" -encoding UTF8
        Add-Content $OutputLog "^  $count  | $Encoding | $Run |" -encoding UTF8
    }else{
#        Write-Host "$count : $Encoding : エンコ待ち"
        Add-Content $OutputLog "^ $count | $Encoding | エンコ待ち |" -encoding UTF8
    }
}

Add-Content $OutputLog "" -encoding UTF8
home/rec/encode-checker-ps1-01.1277011894.txt.gz · 最終更新: 2010/06/20 14:31 by yuki
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0