【イラレ用ツール】ドキュメントバージョンを表示する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 %*