|
|
 |

特殊文字の使用
特殊なシェル文字とp4コマンド
タスク
p4コマンドラインで特殊文字を取り扱うには、どのようにすればよいでしょうか
解決策
PERFORCEは * および # の文字をファイル指定において使用します。これらの文字は多くのコマンドシェルにおいて特別な意味があり、p4コマンドでは引用符を使用する必要がある場合があります。(UNIXでは単一引用符を使用し、Windows MS-DOSシェルでは二重引用符を使用します。)
# シンボルの使用例
p4 sync #none
このコマンドはすべてのディポファイルをワークスペースから削除するはずです。そうではなく、ワークスペース全体を最新リビジョンに同期するという処理が行われた場合は、コマンドシェルで # がコメント文字として解釈されたためです。このような場合、次のコマンドを実行してみましょう。
p4 sync '#none'
アスタリスクの使用例
あるいは、例えば次のようなコマンドで、
p4 files stuff/*
「ファイルが見つかりません」と出力される場合、コマンドシェルにおいてPERFORCEが感知するよりも前に * ワイルドカードを拡張しようとしている可能性があります。引用符の使用方法はいくつか考えられます。例を示します。
MS-DOS p4 files "stuff/*"
p4 files stuff/"*"
Unix p4 files 'stuff/*'
p4 files stuff/'*'
p4 files stuff/*
また、PERFORCEワイルドカードの %1 を使用することもできます。これは * と同じ意味ですが、ほとんどのシェルでは特殊な意味を持ちません。
p4 files stuff/%1
(これは、%1 が特殊な意味を持つ MS-DOS バッチスクリプトでは機能しないことに注意してください。)
二重の順スラッシュに関する注意
PERFORCEでは、ファイルパスの参照の際に二重に組み合わせた順スラッシュ文字 "//" を使用することがよくあります。 // 文字の組み合わせは、ディポまたはクライアント・ワークスペースのパスではなく、汎用命名規則(Universal Naming Convention:UNC)のパスを参照しているとシェルに解釈される可能性があります。 //depot または //clientname の構文を使用したとき、PERFORCEコマンドから結果を取得するのに異常に長く時間がかかる場合は、パス文字列全体を引用符で囲んでみてください。一般に、この問題の影響を受けやすいのはWindows環境でのUNIXシェルだけです。その他のネットワークの問題に関連する遅延については、NOTE040「ネットワークの問題の切り分け」を参照してください。
|
|