【イラレ用ツール】ドキュメントバージョンを表示するPowerShell

illustratorで作成したファイルのドキュメントバージョン(「作業したアプリのバージョン」ではなく「保存するときに選んだバージョン」)を取得して表示するPowerShellを作成しました。

ファイルのプロパティで表示されるのは作業アプリのバージョン

バッチファイルにai(eps)ファイルをドラッグ&ドロップして起動してください。(複数ファイル可)
※PowerShellにファイルパスを引数として渡すためのバッチファイルです。
※ファイルを右クリック>送るでバッチファイルを指定しても起動できます。

処理結果イメージ

#check_doc_ver.ps1

[void][System.Reflection.Assembly]::LoadWithPartialName("system.windows.forms")
try {
    if ($Args.Count -gt 0){
        $result_hash_tbl = @{}
        $Args | ForEach-Object {
            if (Test-Path -Path ($_) ) {
                $file_name = [System.IO.Path]::GetFileName($_) 
                $line =  Select-String  -Path $_ -Pattern '%%Creator: Adobe Illustrator\(R\)' | select-object -Last 1
                $ver = $line -split "\(R\)" | Select-Object -Last 1
                if( $result_hash_tbl.ContainsKey($ver) -eq $false ){
                    $result_hash_tbl.add($ver, $file_name)
                }
                else{
                    $str = ($result_hash_tbl[$ver] -split "`r`n" | Select-Object -Last 1) + ", "+ $file_name
                    if($str.Length -ge 60){
                        $result_hash_tbl[$ver] = $result_hash_tbl[$ver] + ",`r`n" + $file_name
                    }
                    else{
                        $result_hash_tbl[$ver] = $result_hash_tbl[$ver] + ", "+ $file_name
                    }
                }
            }
        }
        $msg = ""
        if($result_hash_tbl.Count -gt 0){
            foreach($key in $result_hash_tbl.Keys){
                if($msg -ne ""){
                    $msg = $msg + "`r`n"
                }
                $msg = $msg + "ver." + $key + ":`r`n" + $result_hash_tbl[$key] + "`r`n"
            }
            [System.Windows.Forms.MessageBox]::Show($msg,"結果")
        }
        else{
            [System.Windows.Forms.MessageBox]::Show("バージョンの取得に失敗しました。","結果")
        }

    }
}
catch {
    #エラー発生時の処理
    [System.Windows.Forms.MessageBox]::Show("実行エラー:get_ai_ver.ps1 " + $_.Exception.Message)
}

#イラレの保存バージョンの確認 .bat

@echo off
rem
set currentBatDir=%~dp0
cd %currentBatDir%
PowerShell -WindowStyle Hidden -ExecutionPolicy Default -File .\check_doc_ver.ps1 %*

いいなと思ったら応援しよう!