名前: munepi 日時: 2007-04-07 00:14:54 IPアドレス: 218.41.184.*
>>47583 UNIX だったらシェルスクリプトで瞬時に終わってしまいますが, Windows の場合のコマンドプロンプトは全く好みではありませんので, VBScript で(私の中ではいつもの)お決まりの方法で書いてみました. 以下のスクリプトを ezpstoeps.vbs という名前で,適当にどっかへ保存して, このスクリプトのアイコンへ目がけて(複数個の)PS ファイルを ドラッグ&ドロップして下さい! # 実はコマンドプロンプトからでも vbs は実行できますが,そこらへんは適当に…. ------------------------------------------------------------------------- '********************************************************************** ScriptName = "ezpstoeps.vbs ver.0.01 2007/04/06 by munepi" ' based on eztrans.vbs ver.0.01 2006/06/18 by munepi ' Filter for converting PS to EPS file '********************************************************************** Dim PSTOEPSI PSTOEPSI="C:\gs\gs8.54\lib\ps2epsi.bat" '********************************************************************** Set WSHShell = WScript.CreateObject("WScript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") Set objArgs = WScript.Arguments If objArgs.Count=0 Then Usage = "このスクリプトファイルに(複数の)PS のファイルをドラッグ&ドロップして下さい" MsgBox Usage,,ScriptName WScript.Quit End If For I = 0 to objArgs.Count - 1 TEMP = "___tmp___" CD = objFSO.GetParentFolderName(objArgs(I)) BN = objFSO.GetBaseName(objArgs(I)) EXT = objFSO.GetExtensionName(objArgs(I)) If EXT = "ps" Then Call exec_pstoepsi() End If Next MsgBox "Complete!",,ScriptName Sub exec_pstoepsi() Set st = objFSO.CreateTextFile(CD & "\" & TEMP & ".pstoepsi.bat", True) st.Write(PSTOEPSI & " " & BN & ".ps" & " " & BN & ".eps") st.Close() Set st = objFSO.CreateTextFile(CD & "\" & TEMP & ".bat", True) st.Write("call " & TEMP & ".pstoepsi.bat") st.WriteBlankLines 1 st.Write("del /q " & TEMP & ".*") st.Close() Call execbat() Do Until objFSO.FileExists(CD & "\" & BN & ".eps") = True WScript.Sleep 500 Loop End Sub Sub execbat() WSHShell.CurrentDirectory = CD WSHShell.Run CD & "\" & TEMP & ".bat" Do Until objFSO.FileExists(CD & "\" & TEMP & ".bat") = False WScript.Sleep 500 Loop End Sub
この書き込みへの返事: