<?xml version="1.0" encoding="UTF-8"?>
<article id="Command_line">
  <title>コマンドライン<indexterm>
      <primary>コマンドライン</primary>
    </indexterm><indexterm>
      <primary>WinMerge コマンドライン</primary>

      <see>コマンドライン</see>
    </indexterm></title>

  <para>WinMergeのコマンドラインは、比較するパスに加えいくつかのパラメータを受け付けます。
  これらのパラメータのほとんどは、外部比較ツールとして使用したり、バッチファイルから比較操作を
  開始できるようにすることを目的としています。
  </para>

  <para>WinMergeをコマンドラインから実行するには以下の書式のうちの1つを使用します:</para>

  <para><cmdsynopsis sepchar=" ">
      <command>WinMerge<optional>U</optional></command>

      <arg choice="opt" rep="norepeat"><option>/?</option></arg>
    </cmdsynopsis></para>

  <para><cmdsynopsis sepchar=" ">
      <command>WinMerge<optional>U</optional></command>

      <arg choice="opt" rep="norepeat"><option>/r</option></arg>

      <arg choice="opt" rep="norepeat"><option>/e</option></arg>

      <arg choice="opt" rep="norepeat"><option>/f</option>
      <replaceable>filter</replaceable></arg>

      <arg><option>/x</option></arg>

      <arg><option>/xq</option></arg>

      <arg><option>/s</option></arg>

      <arg choice="opt" rep="norepeat"><option>/ul</option></arg>

      <arg choice="opt" rep="norepeat"><option>/um</option></arg>

      <arg choice="opt" rep="norepeat"><option>/ur</option></arg>

      <arg choice="opt" rep="norepeat"><option>/u</option></arg>

      <arg choice="opt" rep="norepeat"><option>/wl</option></arg>

      <arg choice="opt" rep="norepeat"><option>/wm</option></arg>

      <arg choice="opt" rep="norepeat"><option>/wr</option></arg>

      <arg><option>/minimize</option></arg>

      <arg><option>/maximize</option></arg>

      <arg choice="opt" rep="norepeat"><option>/fl</option></arg>

      <arg choice="opt" rep="norepeat"><option>/fm</option></arg>

      <arg choice="opt" rep="norepeat"><option>/fr</option></arg>

      <arg choice="opt" rep="norepeat"><option>/dl</option>
      <replaceable>leftdesc</replaceable></arg>

      <arg choice="opt" rep="norepeat"><option>/dm</option>
      <replaceable>middledesc</replaceable></arg>

      <arg choice="opt" rep="norepeat"><option>/dr</option>
      <replaceable>rightdesc</replaceable></arg>

      <arg choice="plain"
      rep="norepeat"><replaceable>leftpath</replaceable></arg>

      <arg cchoice="opt"
      rep="norepeat"><replaceable>middlepath</replaceable></arg>

      <arg choice="plain"
      rep="norepeat"><replaceable>rightpath</replaceable></arg>

      <arg choice="opt"
      rep="norepeat"><option>/o</option>
      <replaceable>outputpath</replaceable></arg>

      <arg choice="opt" rep="norepeat"><option>/al</option></arg>

      <arg choice="opt" rep="norepeat"><option>/am</option></arg>

      <arg choice="opt" rep="norepeat"><option>/ar</option></arg>

    </cmdsynopsis></para>

  <cmdsynopsis sepchar=" ">
    <command>WinMergeU</command>

    <arg choice="plain"
    rep="norepeat"><replaceable>conflictfile</replaceable></arg>
  </cmdsynopsis>

  <para>パラメータなしかパス名を入力すると単にWinMergeウインドウを開きます。
  パラメータは、スラッシュ( <literal>/</literal> ) か、ダッシュ ( <literal>-</literal> ) 文字が
  前に付加されます。パス名にはプリフィックス文字を付加しません。</para>

  <itemizedlist>
    <listitem>
      <para><option>/?</option> このトピックのWinMergeヘルプを開きます。</para>
    </listitem>

    <listitem>
      <indexterm>
        <primary>再帰フォルダ比較</primary>
      </indexterm>

      <para><option>/r</option> すべてのサブフォルダ内のすべてのファイルを比較します(再帰比較)。
      ユニークフォルダ (片方のみ存在するフォルダ)は、分離された項目として比較結果内にリストされます。
      サブフォルダまで含めるとかなり比較時間が増大してしまうことに注意してください。
      このパラメータを指定しなかった場合、WinMergeは比較するフォルダ内のファイルとトップレベルのサブフォルダのみリストします。
      サブフォルダの中までは比較しません。</para>
    </listitem>

    <listitem>
      <indexterm>
        <primary>WinMergeウインドウ</primary>

        <secondary>閉じる</secondary>
      </indexterm>

      <para><option>/e</option> <keycap>Esc</keycap>キーでWinMergeが閉じるようにします。
      WinMergeを外部比較アプリケーションとして使用する場合に便利です。
      (ダイアログのようにすばやくWinMergeを閉じることができます)
      この引数を指定しなかった場合、すべてのウインドウを閉じるのに何回も<keycap>Esc</keycap>キーを
      押さなければならないことになるかもしれません。(2つ以上タブが開かれている場合、一回のESCキーの押下でWinMergeが終了してしまうのを期待している人はいないような気がしたので、日本語版ではこのオプションを指定しても2つ以上タブが開かれている場合は1つのタブを閉じるだけにし、タブが1つの時またはタブが一つもない時にWinMergeを終了するようにしました)</para>
    </listitem>

    <listitem>
      <indexterm>
        <primary>フィルタ</primary>

        <secondary>コマンドラインでの適用</secondary>
      </indexterm>

      <para><option>/f</option> 比較を制限するために、指定したフィルタを適用します。
      フィルタは<filename><userinput>*.h *.cpp</userinput></filename>のようなファイルマスクか、
      <userinput>XML/HTML Devel</userinput>のようなファイルフィルタの名前です。
      スペースを含むフィルタマスクやフィルタ名はダブルクォーテーションマークで括ってください。</para>
    </listitem>

    <listitem>
      <para><option>/x</option> 同一ファイルの比較をしたときにWinMergeを閉じます。
      (情報ダイアログを表示した後)
      このパラメータは比較後に効果がなくなります。
      例えば、もしファイルがマージか編集の結果として同一となった場合です。
      このパラメータは、WinMergeを外部アプリケーションとして使用したり、
      差異のないファイルを無視することによって余分なステップを取り除きたい場合に便利です。</para>
    </listitem>

    <listitem>
      <para><option>/xq</option> オプション <option>/x</option> に似ていますが、同一ファイルであってもメッセージボックスを表示しません。 </para>
    </listitem>

    <listitem>
      <indexterm>
        <primary>WinMergeウインドウ</primary>

        <secondary>インスタンス制限</secondary>
      </indexterm>

      <para><option>/s</option> WinMergeウインドウを1つのインスタンスに制限します。
      例えば、WinMergeが既に実行中ならば、新しい比較は同じインスタンス内で実行されます。
      この引数を指定しなかった場合、複数のウインドウが開かれる可能性があります:
      設定によっては、新しい比較が既に存在するウインドウで実行されることも新しいウインドウで
      実行されることもあります。</para>
    </listitem>

    <listitem>
      <indexterm>
        <primary>MRU リスト</primary>
      </indexterm>

      <para><option>/ul</option> 左側パスが最近使用した項目(MRU)リストに追加されるのを防ぎます。
      外部アプリケーションは、ファイルまたはフォルダの選択ダイアログのMRUリストにパスを
      追加するべきではありません。</para>
    </listitem>

    <listitem>
      <para><option>/um</option> 中央のパスが最近使用した項目(MRU)リストに追加されるのを防ぎます。
      外部アプリケーションは、ファイルまたはフォルダの選択ダイアログのMRUリストにパスを
      追加するべきではありません。</para>
    </listitem>

    <listitem>
      <para><option>/ur</option> 右側パスが最近使用した項目(MRU)リストに追加されるのを防ぎます。
      外部アプリケーションは、ファイルまたはフォルダの選択ダイアログのMRUリストにパスを
      追加するべきではありません。</para>
    </listitem>

    <listitem>
     <para><option>/u</option> (または<option>/ub</option>) 各々(左、右、中央)のパスが最近使用した項目(MRU)リストに追加されるのを防ぎます。
      外部アプリケーションは、ファイルまたはフォルダの選択ダイアログのMRUリストにパスを
      追加するべきではありません。</para>
    </listitem>

    <listitem>
      <indexterm>
        <primary>ファイルの保護</primary>
      </indexterm>

      <para><option>/wl</option> 読み取り専用として左側を開きます。
      比較時、左側を変更したくない場合に使用してください。</para>
    </listitem>

    <listitem>
      <para><option>/wm</option> 読み取り専用として中央を開きます。
      比較時、中央を変更したくない場合に使用してください。</para>
    </listitem>

    <listitem>
      <para><option>/wr</option> 読み取り専用として右側を開きます。
      比較時、右側を変更したくない場合に使用してください。</para>
    </listitem>

    <listitem>
      <indexterm>
        <primary>WinMergeウインドウ</primary>

        <secondary>最小化または最大化で開く</secondary>
      </indexterm>

      <para><option>/minimize</option> 最小化状態でWinMergeを開始します。
      このオプションは長時間かかる比較を行う場合に便利です。</para>
    </listitem>

    <listitem>
      <para><option>/maximize</option> 最大化状態でWinMergeを開始します。</para>
    </listitem>

    <listitem>
      <para><option>/fl</option> 起動時、左側にフォーカスを当てます</para>
    </listitem>

    <listitem>
      <para><option>/fm</option> 起動時、中央にフォーカスを当てます</para>
    </listitem>

    <listitem>
      <para><option>/fr</option> 起動時、右側にフォーカスを当てます</para>
    </listitem>

    <listitem>
      <para><option>/dl</option> 左側タイトルバーの説明を指定します。
      デフォルトのフォルダやファイル名テキストに上書きされます。例:
      <userinput>/dl "Version 1.0</userinput>" や <userinput>/dl
      WorkingCopy</userinput>. スペースを含む説明はダブルクォーテーションマークで括ってください。</para>
    </listitem>

    <listitem>
     <para><option>/dm</option> <option>/dl</option>と同様に中央タイトルバーの説明を指定します。
     </para>
    </listitem>

    <listitem>
     <para><option>/dr</option> <option>/dl</option>と同様に右側タイトルバーの説明を指定します。
     </para>
    </listitem>

    <listitem>
      <para><option><replaceable>leftpath</replaceable></option> 左側で開くフォルダやファイルを指定します。
      </para>
    </listitem>

    <listitem>
      <para><option><replaceable>middle</replaceable></option> 中央で開くフォルダやファイルを指定します。
      </para>
    </listitem>

    <listitem>
      <para><option><replaceable>right</replaceable></option> 右側で開くフォルダやファイルを指定します。
      </para>

      <para>WinMergeは、ファイルとフォルダを比較できません。そのためパスパラメータ両方
      (<option><replaceable>leftpath</replaceable></option> と
      <option><replaceable>rightpath</replaceable></option>) には、同じ種類(フォルダかファイルのどちらか)
      を指し差なければなりません。
      もし、WinMergeが指定したパスのどちらかを見つけることができなければ、
      ファイルまたはフォルダ選択ダイアログを開きます。
      ファイルまたはフォルダ選択ダイアログでは、正しいパスを選択できます。</para>

      <tip>
        <para>ファイル比較では、パスパラメータの一つとしてフォルダ名を指定できます。
        ただし、フォルダは他方のファイル名と同じファイルを含んでいる必要があります。
        </para>

        <para>例えば、以下のコマンドを考えます:</para>

        <para><userinput>WinMergeU <filename>C:\Folder\File.txt</filename>
        <filename class="directory">C:\Folder2</filename> </userinput></para>

        <para>もし、<filename class="directory">C:\Folder2</filename>が
        ファイル名<filename>File.txt</filename>を含んでいれば、
        WinMergeは、暗黙的にファイル指定として第二のパスを解決します。
        当然ながら、<filename class="directory">C:\Folder2</filename>がファイル名
        <filename>File.txt</filename>を含んでいなければ、コマンドは不正とみなされます。</para>
      </tip>
    </listitem>

    <listitem>
      <indexterm>
        <primary>差異をマージする</primary>

        <secondary>結果ファイル</secondary>
      </indexterm>

      <para><option>/o <replaceable>outputpath</replaceable></option> 
      マージした結果のファイルを保存するオプションの出力フォルダを指定します。
      </para>

      <para>出力パスはコマンドラインからWinMergeを開始する時まれにしか必要となりません。
      それはバージョンコントロールツールとともに使用されることになります。
      結果ファイルとして出力パスを指定する必要があるかもしれません。
      もし、出力パスを指定した場合、あるペインを変更後保存すると、変更は出力パスのファイルに保存され、
      元ファイルは前の状態のままになります。
      </para>

      <para>バージョンコントロールシステムは一般的に<glossterm>theirs</glossterm>や
      <glossterm>mine</glossterm>、<glossterm>merged</glossterm>かまたは<glossterm>resolved</glossterm>
      のような用語を使用し元と結果ファイルを参照します。
      もし、WinMergeコマンドラインに出力パスを指定し、バージョンコントロールシステムと連携するならば、
      この順番でファイルを並べるべきです。</para>
    </listitem>

    <listitem>
      <para><option>/al</option> 起動時、左側で自動マージします。</para>
    </listitem>

    <listitem>
      <para><option>/am</option> 起動時、中央で自動マージします。</para>
    </listitem>

    <listitem>
      <para><option>/ar</option> 起動時、右側で自動マージします。</para>
    </listitem>

    <listitem>
      <indexterm>
        <primary>コンフリクトファイル</primary>

        <secondary>コマンドラインでの指定</secondary>
      </indexterm>

      <para><option><replaceable>conflictfile</replaceable></option> コンフリクトファイルを指定します。
      コンフリクトファイルは通常バージョンコントロールシステムによって生成されます。
      コンフリクトファイルはファイル比較ウインドウで開かれ、
      <xref linkend="ResolveConflictFiles" />で説明している様にマージやコンフリクトを解決することができます。
      コンフリクトファイルと共に他のパスは使用できないことに注意してください。</para>
    </listitem>
  </itemizedlist>
</article>
