何か決めなきゃ駄目ですか。



俺が決めたら、貴方はどうするんだい。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

aviutlの進捗状況

PowerShellを使ってこんな感じでウィンドウのタイトル名を引き抜いて、テキストに吐いてみる。

apacheとかで見えるところに置けば割と動く。
(完全に作ったら動いた論でやってるので、本当は他にいい方法があると思うんだ・・・)


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

#---------------------------------------------------------
#---- $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 = Get-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

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。