0

次のようなコマンドを実行する必要があります。

atlassian confluence --action addLabels --labels labelName --space nameOfSpace --title "title name"

タイトルの長いリスト。titleこのコマンドは、1 つの引数とパラメーターのみを受け入れます。

タイトルのリストを入力として取得し、それぞれを上記のようなコマンドに入れて実行する Ant タスクを使用して、これを自動化できますか?

replaceregexp を使用して上記のコマンド内のリスト内の各タイトルをラップし、すべてをバッチ ファイルに入れてコマンドを何度も実行できると思いますが、より良い方法はありませんか?

タイトルのカンマ区切りのリストを試したり、1 つのコマンドでリストを実行しようとしたりしましたが、一度に 1 つしか受け入れないようで、CLI のドキュメントには、それ以外のことについては何も書かれていません。

アップデート:

上記を達成する方法を知りたいと思っていましたが、最終的に 1 つのコマンドで必要なことを行う方法を見つけました。つまり、トップ ページのタイトルを入力するだけで、特定のタイトルのすべての「子」ページの Confluence のページにラベルを追加または削除するには:

confluence --action runFromPageList --space "SpaceName" --title "Parent Page Name" --descendents --common "--action addLabels --labels "New-Label-To-Add" --title ""@title@"" --space "SpaceName"" 

これは、Confluence コマンド ライン インターフェースを使用しています。欠けていたトリックは、使用することでした-descendents( ではなく--children、他の合流コマンドで行われている方法です)。

私はすべての子ページをリストに抽出しており、その部分はやり方を知っていたので、そこから行こうと考えていましたが、この方法では、1 つのコマンドを使用してプロセスを自動化します。

アップデートⅡ

上で述べたように、場合によっては 1 つのコマンドを使用してラベルを追加する方法を見つけましたが、後で、選択したページ タイトルのリスト (共通の親を持たないページ) にラベルを追加する方法が必要になりました。forそこで私はこれに戻って、ここでの回答の 1 つを使用して、.txt ファイル内のタイトルのリストをループすることでラベルを追加する方法を考案しました。これが私が.batファイルに入れたものです:

cmd /k for /F "usebackq delims=" %%A in (my.list.txt) DO (confluence --action addLabels --labels labelName --space spaceName --title "%%A")

問題の 1 つは、タイトルの名前にスペースが含まれていることでした。そのため、こちら"usebackq delims="の回答 #2 で見つけたものを追加する必要がありました。

4

2 に答える 2

1

applyを使用して、次のようにリソース コレクションに対してコマンドを実行できます。

<project name="project" default="addLabels">

<!-- comma-separated list of titles -->
<property name="titles" value='foo,"bar baz",etc' />

<target name="addLabels">
    <apply executable="atlassian" relative="true">
        <arg value="confluence" />
        <arg value="--action" />
        <arg value="addLabels" />
        <arg value="labelName" />
        <arg value="--space" />
        <arg value="nameOfSpace" />
        <arg value="--title" />
        <tokens>
            <string value="${titles}" />
            <stringtokenizer delims="," />
        </tokens>
    </apply>
</target>

Ant 1.9.2 および executable="echo" でテストすると、以下が得られます。

Buildfile: build.xml
    addLabels:
    [apply] confluence --action addLabels labelName --space nameOfSpace --title foo
    [apply] confluence --action addLabels labelName --space nameOfSpace --title "bar baz"
    [apply] confluence --action addLabels labelName --space nameOfSpace --title etc
BUILD SUCCESSFUL
于 2014-08-14T09:00:02.163 に答える