差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
home:rec:encode-checker-ps1-01 [2010/06/20 17:37] yuki |
— (現在) | ||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== Aviutlのエンコード進捗率確認用スクリプト ====== | ||
- | 出力イメージは、[[..:encoding]]を参照。 | ||
- | |||
- | スクリプトはPowerShellで動かす。 | ||
- | <code> | ||
- | #--------------------------------------------------------- | ||
- | #---- エンコード進捗率をそれっぽく吐き出すスクリプト | ||
- | #--------------------------------------------------------- | ||
- | |||
- | #--------------------------------------------------------- | ||
- | #---- $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 | ||
- | </code> | ||