1

私はアップルスクリプトが初めてです。InDesign で既存のバッチ ファイルを開き、ファイル内のテキストを検索して変更する Automator スクリプト アプリを作成しようとしています。(これは少し複雑だと思いましたが、簡単ではありませんでした)私が苦労しているのは、これらのファイルを別の場所に保存することですが、元のファイルを保持する必要があるため、元のファイル名を使用しています。パスとファイル名を指定するスクリプトがありますが、パスのみを指定して既存のファイル名を使用する必要があります。これは可能ですか?

私が試したコードは次のとおりです。

tell application "Adobe InDesign CS5.5"
save document 1 to "users:xxx:Desktop:"
close document 1
end tell

ファイル名を指定していないという理由で機能していないようですが、したくありません! 元のファイル名を呼び出す方法はありますか? 特定のファイルに固有のスクリプトの要点がわからないため、これを行う方法があるに違いないと思います。

私の次のステップは、ファイル名の最後のビットを置き換えてファイルの名前を変更することです。たとえば、xxx_xxx_M6.indd を xxx_xxx_M7.indd に変更します。別のスクリプトでこれを行う方法は知っていますが、上記のセクションでそれを行うことができれば、それは素晴らしいことです。

4

2 に答える 2

0

InDesignドキュメントには、興味のある3つのプロパティがあります。
name: "xxx_xxx_M6.indd"
file path:ファイル "Macintosh HD:sourceFolder:"
full name:ファイル "Macintosh HD:sourceFolder:xxx_xxx_M6.indd"

したがって、開いているファイルを同じ名前でデスクトップに保存(および閉じる)するには、次のようにします。

tell application "Adobe InDesign CS5.5"  
    save document 1 to "users:xxx:Desktop:" & name of document 1  
    close document 1  
end tell
于 2013-02-26T11:46:36.230 に答える
0

保存時に元のファイル名を使用する場合は、ファイルのプロパティから取得して、保存先のパスと組み合わせることができます。次のようにします。

set origName to the name of document 1 as string
save document 1 to ("your:path:here:" & origName)

origName編集:サフィックスを置き換えるための独自のルーチンが既にある場合は、save コマンドに渡す前にそれらの操作を実行できます。誰にとっても役立つ場合に備えて、接尾辞の置換については以下に示しておきます。


質問の 2 番目の部分である接尾辞の置き換えについては、正確に何をしたいかによって異なります。あなたの例から、次のコードで行うことができる数値を増やしたいと思います。

set thePoint to the offset of "." in origName
set firstPart to (characters 1 through (thePoint - 1) of origName) as string
set fpLength to the length of firstPart

set newSuffix to ((the last character of firstPart) as number) + 1
set newName to (characters 1 through (fpLength - 1) of firstPart) & newSuffix ¬
    & ".indd" as string

これは、ファイルの名前をその拡張子から分離し、その名前の最後の文字 (数字に変換) を 1 ずつインクリメントして新しい接尾辞を作成し、そのロットを組み合わせて完全なファイル名を形成し、保存で使用できるようにします。指図。

重要なのは、元のファイル名を分解してから、パーツに対して操作を実行することです。

現在、これにはいくつかの制限があります。1 桁以外の接尾辞を使用すると、事態が複雑になります (不可能ではありません)。また、スクリプトを実行するすべてのユーザーが、Finder の設定で「すべてのファイル拡張子を表示」を有効にしていると想定します (これは機能します)。ただし、周り)。

すべてをまとめると、次のようになります。

tell application "Adobe InDesign CS5.5"
    set origName to the name of document 1 as string

    set thePoint to the offset of "." in origName
    set firstPart to (characters 1 through (thePoint - 1) of origName) as string
    set fpLength to the length of firstPart

    set newSuffix to ((the last character of firstPart) as number) + 1
    set newName to (characters 1 through (fpLength - 1) of firstPart) ¬
        & newSuffix & ".indd" as string

    save document 1 to ("your:path:here:" & newName)
end tell

使用するサフィックスについてさらに情報を提供していただければ、喜んで回答を更新します。

于 2013-02-26T11:44:49.787 に答える